最近在写题,发现数据一大排序就超时,就在论坛上发现了sort(),这个函数是来排序的,比冒泡排序的算法要省时间,经常结合vector使用。
vector 用来定义可变数组,表示可以改变大小的数组的序列容器,这里有详细的介绍,我就不赘述了。
sort(参数一,参数二,参数三)有三个参数(第三个参数可写可不写),第一个参数用来放起始地址,第二个参数用来放最后一个参与排序的地址,第三个参数用来放排序方式(默认从小到大排序)。
使用此函数要在头文件处加上,#include < algorithm>和using namespace std;
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int num[10] = {4,3,23,6,7,3,33,67,13,2};
int i = 0;
for(i = 0;i < 10;++i)
cout << num[i] <<" ";
cout << endl;
sort(num,num+10);
for(i = 0;i < 10;++i)
cout << num[i] <<" ";
cout << endl;
return 0;
}
三个参数
类型一
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
int num[ ] = {4,3,23,6,7,3,33,67,13,2};
int i = 0; int len = sizeof(num)/sizeof(int);//记得除以int的长度
for(i = 0;i < len;++i)
cout << num[i] <<" ";
cout << endl;
sort(num,num+10,greater<int>());//从大到小排序
for(i = 0;i < 10;++i)
cout << num[i] <<" ";
cout << endl;
sort(num,num+10,less<int>());//从小到大排序
for(i = 0;i < 10;++i)
cout << num[i] <<" ";
cout << endl;
return 0;
}
类型二
#include <iostream>
#include <algorithm>#include <vector>
using namespace std;
//下面的比较函数的返回值为0或者1bool
bool pai1(int m, int n){
return m>n; //降序排列
}
bool pai2(int m, int n){
return m<n; //升序排列
}
int main(){
int num[ ] = {4,3,23,6,7,3,33,67,13,2};
int i = 0;
int len = sizeof(num)/sizeof(int);//记得除以int的长度
for(i = 0;i < len;++i)
cout << num[i] <<" ";
cout << endl;
sort(num,num+10,pai1);//从大到小排序 ,不要尝试在cmp1的位置上写turn,会报错的。
for(i = 0;i < 10;++i)
cout << num[i] <<" ";
cout << endl;
sort(num,num+10,pai2);//从小到大排序
for(i = 0;i < 10;++i)
cout << num[i] <<" ";
cout << endl;
return 0;
}
作者:include4229
来源:CSDN
原文:https://blog.csdn.net/include4229/article/details/84621630
版权声明:本文为博主原创文章,转载请附上博文链接!