题记 --> 在C++的STL里面有两个sort与qsort可以直接用于对各种类型的数据以及容器进行排序。
1、sort
sort函数,与qsort同为排序函数,复杂度为n*log2(n)。sort()定义在头文件<algorithm>中,使用时需要include<algorithm>
sort函数是标准模板库的函数,执行速度一般比qsort要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条
件。 推荐使用sort函数而不用qsort函数sort函数用法多变,默认是可以直接使用两个参数,可以传两个参数或三个参数。
第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。sort函数默认是升序。
使用方法:
void sort ( RandomAccessIterator first, RandomAccessIterator last );
void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare comp );
参数意义:
first:要排序的区间首地址
last:区间尾地址的下一地址
comp:函数指针,指向比较函数(这个函数是要自己写的,sort中默认升序)
如要数组按降序排列,可以先定义一个比较函数cmp:
bool cmp(int a,int b)
{
return a>b;
}
2、qsort
qsort函数定义在头文件<algorithm>中,使用时需要include<algorithm>
功 能: 使用快速排序例程进行排序
使用方法:
void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )
参数意义:
base:需要排序的目标数组开始地址
num:目标数组元素个数
width:目标数组中每一个元素长度
compare:函数指针,指向比较函数(这个函数是要自己写的,sort中默认升序)