c++ sort 学习笔记

时间:2022-07-22
本文章向大家介绍c++ sort 学习笔记,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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
}