1.对数组排序
sort(a+n,a+m)表示对a数组下标n~m-1范围元素升序排列
sort函数有三个参数,前两个参数是数组名+整数的形式,第三个参数用于选择升序还是降序,
不加第三个参数默认是升序
如果要降序排列,需要写一个cmp函数,并给sort函数加上第三个参数cmp
//下面是要加的函数
bool cmp(int a,int b)
{
return a>b;
}
接下来就可以用sort(a,a+n,cmp)实现对a数组前n个元素降序排列
原理:cmp函数返回值为真时,将第一个参数放在前面
2.对结构体排序
法一:
我们使用重载“<”方法进行排序
例如:
struct node{
int a,b;
//重载<
bool operator<(node B)const
{
if(a!=B.a) return a<B.a;
return b<B.b;
}
}
实现对二元组的升序排列,第一个数小的二元组小,如果第一个数相等,则第二个数小的二元组更小
法二:
改写第三个参数,cmp函数
例如仍要实现对上面的二元组排序:
struct node{
int a,b;
}a[N];
bool cmp(node x,node y)
{
if(x.a!=y.a) return x.a<y.a;
return x.b<y.b;
}
sort(a,a+n,cmp);
如果要降序排列,只要把cmp函数里<换成>就行了