STL之sort函数
时间复杂度是n*log2(n)
sort(begin,end);
sort(begin,end,cmp);
升序模式(默认)
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10];
for(int i=0;i<10;i++)
{
a[i]=rand()%100;
}
sort(a,a+10);//左闭右开,默认升序
for(int i=0;i<10;i++)
{
cout<<a[i]<<' ';
}
return 0;
}
降序模式
1、加入greater();//greater<类型>()将大的放在前面
sort(a,a+10,greater<int>());
2、运用reverse(a,a+n)方法反转,sort默认升序,再用reverse反转,就成了降序
自定义模式
如果想按照自己的想法排序,如按绝对值降序
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)//cmp是自己控制的方法
{
return abs(a)>abs(b);
}
int main(){
int a[10];
for(int i=0;i<10;i++)
{
a[i]=rand()%100-50;
}
sort(a,a+10,cmp);//函数提供第三个参数cmp使使用者按自己想法调用
for(int i=0;i<10;i++)
{
cout<<a[i]<<' ';
}
return 0;
}