#include <stdafx.h>
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
struct STUDENT
{
int id; //学号
int class_id; //班级
int score; //分数
};
void main()
{
STUDENT stu[6]={{1,2,80},{2,3,90},{3,3,75},{1,1,60},{1,2,85},{2,3,95}};
STUDENT *pStudent = stu;
STUDENT *pStudentMin = new STUDENT;
for(int i=0;i<6;i++)
{
for(int j=i+1;j<6;j++)
{
if ((pStudent+i)->id > (pStudent+j)->id)
{
*pStudentMin = *(pStudent+j);
*(pStudent+j) = *(pStudent+i);
*(pStudent+i) = *pStudentMin;
}
}
}
for(int i=0;i<6;i++)
{
for(int j=i+1;j<6;j++)
{
if ((pStudent+i)->class_id > (pStudent+j)->class_id)
{
*pStudentMin = *(pStudent+j);
*(pStudent+j) = *(pStudent+i);
*(pStudent+i) = *pStudentMin;
}
}
}
cout <<setw(4)<<"id"<<setw(12)<<"class_id"<<setw(8)<<"score"<<endl;
for (int i=0;i<6;i++)
{
cout <<setw(4)<<stu[i].id<<setw(12)<<stu[i].class_id<<setw(8)<<stu[i].score<<endl;
}
delete pStudentMin;
}
分享到:
相关推荐
本篇文章将详细探讨如何在Objective-C中实现自定义的排序算法,包括快速排序、选择排序、插入排序和希尔排序这四种经典算法。 ### 1. 快速排序 快速排序是一种高效的分治策略,由英国计算机科学家C.A.R. Hoare在...
【分治算法】是计算机科学中一种重要的算法思想,它将一个大...总结来说,本实验报告通过实例详细介绍了分治法在快速排序算法中的应用,包括算法的设计、分析以及具体的C++实现,展示了分治策略如何有效解决复杂问题。
- **堆排序**:利用堆这种数据结构所设计的一种排序算法。 - **基数排序**:一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。 - **特殊排序**:除了上述算法外,还有...
堆排序是一种基于比较的排序算法,利用了完全二叉树的特性。在C++中,可以使用STL的`priority_queue`来实现堆排序。堆排序分为两个主要阶段: 1. **建堆(Heapify):** - 将待排序序列构造成一个大顶堆(或小顶堆...
总结,学生信息管理系统是C语言编程实践中的一项经典任务,它涵盖了数据结构、输入输出、排序算法等多个关键知识点。通过这个系统,不仅可以提升编程技能,还能理解软件工程的基本流程,包括需求分析、设计、编码、...
实验3主要目标是让学生熟悉和掌握排序算法的原理、实现以及性能分析,同时提升在Visual Studio环境下进行项目管理和调试的能力。以下将详细讨论实验中涉及的知识点: 1. **排序算法**:实验要求实现四种经典的排序...
在计算机科学中,数据结构是组织和存储数据的方式,它对于高效的算法设计至关重要。本话题主要探讨了如何利用数据结构来对学生信息按照...熟练掌握各种数据结构和排序算法,能帮助我们在解决实际问题时做出更优的选择。
在这个奇偶排序算法中,MPI可能被用来分配任务,同步进程,以及交换数据,以便在多个处理器之间有效地进行排序。 奇偶排序是一种并行算法,通常用于大规模数据的排序。它的基本思想是将待排序的数据分为两部分:...
"ccc.rar_排序法计算C"这个标题暗示我们这里涉及到的是用C语言实现的排序算法,可能是为了对一组学生的成绩进行排序和统计。让我们深入探讨一下相关的知识点。 首先,链表是一种数据结构,它由一系列节点组成,每个...
模拟退火算法是一种启发式搜索方法,源自物理中的固体退火过程,被广泛应用于解决优化问题,如旅行商问题(TSP)、作业调度等。在C++编程中,实现模拟退火算法通常涉及以下几个关键步骤: 1. **状态定义**:在TSP...
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 ### 并行计算...
冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的序列,一次比较两个元素,如果他们的顺序(如从小到大)错误就把他们交换过来,直到没有任何一对数字需要比较为止。 描述中提到“源程序代码只有...
对于简单的排序,我们可以使用经典的排序算法,如冒泡排序、选择排序、插入排序或快速排序等。在这里,我们提到的“相邻两级比较”可能指的是每次比较相邻的两个元素并根据需要交换它们的位置。例如,冒泡排序就是...
冒泡排序是一种基础且经典的排序算法,主要应用于计算机科学领域,特别是在编程语言如C++中。这个算法通过不断地比较相邻元素并交换位置来逐步排序数组或列表。在"最新冒泡排序c++的写法"中,我们可以探讨以下几个...
冒泡排序是另一种简单的排序算法,它重复地遍历待排序的序列,比较每对相邻元素,然后交换位置,直到没有更多的交换,即序列已排序。Objective-C的实现如下: ```objc - (void)bubbleSort:(NSMutableArray *)array ...
冒泡排序是一种简单的排序算法,其基本思想是重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 ##...
冒泡排序是一种基础且直观的排序算法,常用于教学目的,其主要原理是通过重复遍历待排序的序列,比较相邻元素并根据需要交换位置,直到整个序列变为有序。在这个"冒泡排序过程演示程序"中,我们看到它被应用于C++...
冒泡排序是一种基础且简单的排序算法,它通过重复遍历待排序的序列,比较相邻元素的大小,交换位置(如果需要)来进行排序。在每一轮遍历后,最大的元素会被“浮”到序列的末尾,就像水中的气泡一样上升。这个过程会...
本程序采用汇编语言实现了一种简单的数据排序算法,并在DOS环境下运行。排序算法选择的是经典的冒泡排序,这是一种简单直观但效率相对较低的方法。程序通过定义数据段、堆栈段和代码段来组织数据和执行逻辑。 #### ...