如有不对的地方望读者可以指出

一、sort函数的作用

可以对一个数组进行排序

默认从小到大排序,也可以自定义排序规则。

最重要的是:代码非常短!!!

时间复杂度:\(\Theta(n\log{n})\)

二、sort函数使用方式

sort(begin,end,cmp);

其中 begin 为排序开始位置,end 为排序结束位置,cmp 为排序规则。

注意:begin 和 end 均指的是数组中第几个元素,并不是数组下标。

举个例子

#include

using namespace std;

int a[12]={0,5,3,6,8,2,4,8,0,1,2,4};

int main(){

sort(a+1,a+11+1);

for(int i=1;i<=11;i++)

cout<

return 0;

}

输出:0 1 2 2 3 4 4 5 6 8 8。

上述代码的含义是定义一个长为 \(12\) 的数组 \(a\),元素分别为 0,5,3,6,8,2,4,8,0,1,2,4,然后对第二个元素(下标为 \(1\))到第\(12\)(下标为 \(11\))个元素进行排序,最后输出。

三、排序规则函数

排序规则函数一般为 cmp (你也可以用别的)全拼为compare,意为比较。

排序规则函数是一个布尔型函数,它必定且只有两个参数(两个参数数据类型相同),它必须得有返回值。

一般格式是:

bool cmp(定义第一个参数,定义第二个参数){

排序规则;

}

调用方式是:

sort(a+1,a+n+1,cmp);

当排序规则函数返回值为 \(0\) 时,调换两个参数在被排序数组的位置;否则,不调换两个参数在被排序数组的位置;

排序规则函数在调用时只需要写函数名,不需要写大括号。

bool cmp(int a,int b){

return a>b;

}

这是一个典型的可以将数组里的数从大到小排序的排序规则函数。

如果 \(a>b\),那么返回值为 \(1\),不调换两个参数在数组之中的位置;如果 \(a

四、sort函数的应用

1.结构体

在哪里购买耳塞:您的综合指南
2024国际攀联攀岩世界杯(中国吴江汾湖站)圆满落幕