介绍
Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址的下一位)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
基本数据类型的 升序
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[]={7,8,5,3,11,2};
sort(a,a+6);//也可以是 a+0,a+6
for(int i=0;i<6;i++)
{
cout<<a[i]<<' ';// 结果:2 3 5 7 8 11
}
return 0;
}
基本数据类型的 降序
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
return a>b;// 从大到小
}
int main()
{
int a[]={7,8,5,3,11,2};
sort(a+0,a+6,cmp);
for(int i=0;i<6;i++)
{
cout<<a[i]<<' ';
}
return 0;
}
自定义数据类型的复杂情况排序
struct redBag{
int id;
int count;
int sum;
};
redBag arr[Max];
bool cmp(redBag a,redBag b)
{
if(a.sum!=b.sum) return a.sum>b.sum;//当sum不相等是,按照sum的降序排序
if(a.count!=b.count) return a.count>b.count;//当sun相等,count不相等时,按照count的降序排序
return a.id<b.id;//当sum、count都相等时,按照id的升序排序
}