1.头文件
#include<algorithm>
2.对基本类型数组排序
int* a;
// int a[10] 同理
a = (int*)malloc(sizeof(int)*10);
sort(a,a + 10);
//排序区间 [a,a+10) 左闭右开,默认小到大
//a + 0可以写成a,地址下标0~9,所以右侧a + 10
3.对元素类型为T的基本类型数组从大到小排序
int* a;
a = (int*)malloc(sizeof(int)*10);
sort(a,a + 10,greater<int>());
// greate<T>() 为T类型的从大到小排序
4.用自定义排序规则,对任何T类型数组排序
//使用基本库函数,如greater<T>降序,less<T>升序
sort(a + 2,a + 4,greater<int>)
sort(a + 2,a + 4,less<int>)
//定义比较函数
//数组
bool cmp(int a,int b){
return a > b; //降序
//return a < b; 升序
}
//结构体
struct student{
char name[20];
int age;
}
struct student s[100];
bool cmp(student a,student b)
{
return a.age > b.age; //年龄降序
//return a.age < b.age; 年龄升序
}
bool cmp2(student a,student b){
if(strcmp(a.name,b.name) < 0) //名字字母从小到大排列 strcmp返回值小于0说明,a.name比b.name小
return true;
return false;
}