ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 概述 `std::sort( )`函数是库函数提供的排序函数,必须包括头文件`#include <algorithm>`,它使用的排序方法是类似于快排的方法,时间复杂度为`n*log2(n)` Sort函数有三个参数:(第三个参数可不写) * 第一个是要排序的数组的起始地址。 * 第二个是结束的地址(最后一位要排序的地址) * 第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。 ## C++代码示例 1. 升序排序 例如:数组`a[5]={4,3,2,1,7}`进行升序排列 ```cpp sort(a,a+5) //数组的下标从0开始,数组名代表数组的首地址。5代表数组的长度 ``` 2. 降序排序 例如:数组`a[5]={4,3,2,1,7}`进行降序排列,直接可以写成: ```cpp sort(a,a+4,cmp) ; //cmp不能省略,需要自行实现该函数 ``` 3. cmp函数的实现方式: 如果后面的数比前面的数大,则 ```cpp bool cmp( int a, int b ){ return a>b; //降序排列,如果升序排列,则改为return a<b; } ``` 完整C++代码示例 ``` #include <algorithm> using namespace std; void printArray(int *a, int len) { for (size_t i = 0; i < len; i++) printf("%d\n", a[i]); } int main() { int a[] = {4,1, 2, 3, 5,7, 6}; sort(a, a+7); printArray(a, 7); printf("降序排序:\n"); sort(a, a+7, [](int a, int b){return a > b;}); printArray(a, 7); } ```