复杂度:n*log2(n)
头文件:<algorithm>
条件:进行排序的区间首地址,区间尾地址的下一地址
可用于比较任何容器(必须满足随机迭代器),任何元素,任何条件,执行速度一般比qsort要快。另外,sort()是类属函数。
注意:默认的排序方式是升序,缺升序排序。
sort排序的区间是[a,b)。例如,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,要写sort(a,a+100);
①通过比较函数实现升序
bool cmp(int a,int b) { return a>b; }
②实现结构体node:
struct node{ int a; int b; double c; };
node类型的数组node arr[100],对它进行排序:先按a值升序排列,如果a值相同,再按b值降序排列,如果b还相同,就按c降序排列。就可以写这样一个比较函数:
bool cmp(node x,node y) { if(x.a!=y.a) return x.a if(x.b!=y.b) return x.b>y.b; return return x.c>y.c; }