我们在排序的时候会用到许多复杂的办法
例如冒泡,快排等等
但c++给我们提供一种非常快捷的函数
sort() 函数
它会根据不同的数量级选择合适的排序方法
速度非常的快
我们直接介绍它的使用
头文件:
#include<algorithm>
//使用sort函数要用到的头文件
sort(begin,end,cmd)里面的参数:
【假如我们要从大到小排序下面的 数组的 第2位开始,往后的4位数字(包含第2位)】
int arr[] = {1,5,2,3,45,6,457,4,7,56,54,623,4,326,347};
那我们
sort(arr+2, arr+6,greater<int>());
begin:
第一个元素的指针(arr+2)
end:
最后一个元素的下一个位置的指针(arr+6)
cmd(排序的规则):
1.从大到小用greater<int>()
2.如果不填写默认从小到大进行排序
例如:sort(arr+2,arr+6)
3.自定义排序
例如把所有数字按照接近666的程度排序(%666后的值的从大到小排序)
bool cmp(int a,int b)
{
return a%666>b%666;
}
4.结构体排序
最后大家快来试一下这个神奇的函数吧
#include<iostream>
using namespace std;
#include<algorithm>
int main()
{
int arr[] = {1,5,2,3,45,6,457,4,7,56,54,623,4,326,347};
sort(arr, arr+7,greater<int>());
//下标0到7上的数 从大到小排序排序
//sort(arr, sizeof(arr)/sizeof(arr[0]))
//arr数组里面所有数从小到大排序
(不知道怎么求数组元素多少的可以看我下面的另外一篇博客)
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
printf("%d ", arr[i]);
}
return 0;
}
PS:求数组元素的博客:
关于sizeof(arr)/sizeof(arr[0])解读(plus细节讲解增加)_Yoghurt小王子的博客-CSDN博客_size1of(arr)/sizeof(arr[0])
加油,天可补,海可填,南山可移。日月既往,不可复追。