目录
C排序
C语言中排序函数为qsort,原理为快速排序。
头文件
在使用前,要添加头文件如下:
#include<stdlib.h>
使用
qsort(&base,num,size,cmp)
其中:
- base为数组首元素地址
- num为数组中待排序元素个数
- size为单个数组元素字节长度,可以用sizeof得到
- cmp为自定义的比较函数,该函数必须实现。
C++排序
C++中排序函数为sort,原理为快速排序。
头文件
在使用前,要添加头文件如下:
#include<algorithm>
使用
sort(&first,&last,cmp)
其中:
- first为指向待排序序列的起始位置的指针
- last为指向待排序序列的末尾位置的指针(遵循左闭右开原则) ,
- cmp为比较函数,cmp可以不写,若不写,则默认从小到大排序。
下面主要介绍比较函数。比较函数不仅可以对C++内部定义的数据类型排序,也可以对用户定义的数据类型排序。
1.自定义类型
sort(arr,arr+n);
2.自定义类型
struct Student{
int no;
int score;
};
bool cmp(Student s1,Student s2){
if(s1.score==s2.score)
return s1.no<s2.no; //若成绩相同,学号增序
else
return x.score<y.score; //若成绩不相同,成绩增序
}
sort(arr,arr+n,cmp);