时间复杂度为O(nlogn)
头文件
#include<algorithm>
或者
#include<bits/stdc++.h>
内容
我们设我们排序的数组为a,排序区间为[l,r],且从小到大排序。
则调用方法为:
sort(a+l,a+r)
如果我们不想从小到大排序,我们应该写一个比较函数(一般命名为cmp)来改变排序方法:
例如,我们想要把应该类型为int的数组从小到大排序,我们应该这么定义这个比较函数:
bool cmp(int a,int b)
{
return a>b;
}
我们只需要定义两个与数组类型相同的变量作为参数,再返回两个数字的比较就可以了。
重点
如果是从小到大排序,就用小于号连接两个数;
如果是从大到小排序,就用大于号连接两个数;
简记为:大于号代表从大到小,小于号代表从小到大
写完这个函数,我们只需要在调用sort函数时在第三个参数写上函数名(例如:sort(a+l,a+r,cmp);)
同样,结构体也可以用它排序
例如我们定义一个结构体
struct node
{
int x,y;
}c[1000];
此时,我们需要对c进行排序,x更大的在前面,如果x相同则y更大的在前面
此时,我们可以这样写比较函数:
bool cmp(node a,node b)
{
if(a.x!=b.x)
{
return a.x>b.x;
}
return a.y>b.y;
}