- sort函数是用来排序的函数,它是根据具体的情况使用不同的排序方法,效率较高,一般来说,不推荐使用C语言中的qsort函数,原因是qsort函数使用起来比较麻烦,涉及到很多指针的操作,而且在sort函数在实现中规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n ^ 2)的极端情况,所以我们在排序的时候尽量使用C++下的sort函数来进行排序
qsort 函数使用,占个位置先
2. 下面是sort函数的常见用法:
① 如何使用sort函数
sort函数的使用需要加上头文件#include和c++的函数因此加上**using namespace std;**命名空间,使用方式如下:
sort(首元素地址,尾元素的地址(利用首元素与下标),比较函数);
这么人性化的语言,比较函数当然可以自定义,详情将例子
其中sort函数的参数中前面两个参数是必填的,第三个参数是可以根据需要来进行填写的,,如果不写比较函数那么则默认对于前面给出的区间进行递增排序,下面是具体的例子:
各种类型的十分相似,理解后即可
默认排序方式
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(void){
int arr[6] = {9, 4, 2, 5, 6, -1};
//对a[0]到a[4]进行排序
sort(arr, arr + 5);
for(int i = 0; i < 6; ++i){
printf("%d ", arr[i]);
}
printf("
");
//将a[0]到a[5]从小到大进行排序
sort(arr, arr + 6);
for(int i = 0; i < 6; ++i){
printf("%d ", arr[i]);
}
return 0;
}
从大到小排序 方式
#include<stdio.h>
#include<algorithm>
using namespace std;
bool cmp(int a, int b){
if(a>b)
{
return a;
}
else //简写return a>b;
{
return 0;
}
}
int main(void){
int arr[] = {3, 1, 4, 2};
sort(arr, arr + 4, cmp);
for(int i = 0; i < 4; ++i){
printf("%d ", arr[i]);
}
return 0;
}