c++ sort()函数
实现c++快速排序,时间复杂度为O(nlogn),执行效率较高
sort()函数头文件:#include<algorithm>
sort(begin,end,排序方法),排序方法可以从大到小,也可以从小到大,若不传第三个参数,默认从小到大排序
1.默认方法排序
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>a{ 1,4,2,5,3,6,7,8,9 };
sort(a.begin(), a.end());
for (int i = 0; i < a.size(); i++) {
cout << a[i] << ' ';
}
//1 2 3 4 5 6 7 8 9
}
2.根据需求定义排序方法
//从大到小
bool sort_method(int a, int b)
{
return a > b;
}
//绝对值从大到小排序
bool sort_method(int a, int b) //绝对值排序
{
return abs(a) > abs(b);
}
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
//从大到小
bool sort_method(int a, int b)
{
return a > b;
}
int main()
{
vector<int>a{ 1,4,2,5,3,6,7,8,9 };
sort(a.begin(), a.end(),sort_method);
for (int i = 0; i < a.size(); i++) {
cout << a[i] << ' ';
}
//9 8 7 6 5 4 3 2 1
}
3.使用参数类型定义排序方法
less<数据类型>() //从小到大排序
greater<数据类型>() //从大到小排序
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int>a{ 1,4,2,5,3,6,7,8,9 };
sort(a.begin(), a.end(),greater<int>());
for (int i = 0; i < a.size(); i++) {
cout << a[i] << ' ';
}
//9 8 7 6 5 4 3 2 1
}