c++ STL中sort函数是一个快速排序函数可以对任何类型的数据进行排序。
STL,C++中的标准模板库, 使用起来方便并且效率较高;
#include<algorithm>//用sort要包含这个头文件
一:对基本类型数组从小到大排序
sort( 数组名+n1,数组名+n2);
将数组中下标从n1到n2的元素进行从小到大排序,不包括n2,通过n1,n2 可以对整个或者部分数组排序;
二:对元素类型为T的基本类型数组从大到小排序
sort( 数组名+n1,数组名+n2,greater<T>());
T对应各种元素类型
同样,将数组中下标从n1到n2的元素进行从大到小排序,不包括n2,通过n1,n2 可以对整个或者部分数组排序;
三:第三种自定义排序规则
1排序规则结构体定义:
sort(数组名+n1,数组名+n2,排序规则结构名); struct 结构名{ bool operator()(const T &a1, const T &a2){ return ; } };
返回值为true说明a1应该排在a2前面,false则相反,T对应元素类型
举个例子:
排序规则为按个位数从小到大排序:
struct Rule1{ bool operator()(const int &a1, const int &a2){ return (a1%10)<(a2%10); } }; 调用时sort(a,a+sizeof(a)/sizeof(int),Rule1());
sort还可以对结构体进行排序。
在结构体中重载<运算符
练习
P1177 【模板】快速排序
P7072直播获奖
P1223 排队接水
P1628 合并序列
P1296 奶牛的耳语