sort函数基础用法
如有不对的地方望读者可以指出
一、sort函数的作用
可以对一个数组进行排序
默认从小到大排序,也可以自定义排序规则。
最重要的是:代码非常短!!!
时间复杂度:\(\Theta(n\log{n})\)
二、sort函数使用方式
sort(begin,end,cmp);
其中 begin 为排序开始位置,end 为排序结束位置,cmp 为排序规则。
注意:begin 和 end 均指的是数组中第几个元素,并不是数组下标。
举个例子
#include<bits/stdc++.h>
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<<a[i]<<" ";
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<b\),那么返回值为 \(0\),调换两个参数在数组中的位置。
四、sort函数的应用
1.结构体

浙公网安备 33010602011771号