c++ sort()与qsort()函数使用
2017-03-20 22:19
141 查看
今天在知道c++中有一个函数——sort(头文件是algorithm),可以实现排序功能,效率还比冒泡之类的排序算法高。类似快速排序。
默认的是从小到大排序(升序)。
如果要降序的话。
要自己定义一个函数cmp(compare单词的缩写)
实例
对数组a[5]={1,5,2,6,3}降序排序
qsort ( 数组名 ,元素个数,元素占用的空间(sizeof),比较函数)
比较函数是一个自己写的函数 遵循 int com(const void *a,const void *b) 的格式。
当a b关系为 > < = 时,分别返回正值 负值 零 (或者相反)。
使用a b 时要强制转换类型,从void * 转换回应有的类型后,进行操作。
数组下标从零开始,个数为N, 下标0-(n-1)。
qsort:
sort()
sort(first,last) first表示第一个数据,last是最后一个数据,在这两个数据之间(包括它们)的数据进行排序。默认的是从小到大排序(升序)。
如果要降序的话。
要自己定义一个函数cmp(compare单词的缩写)
bool cmp(int a,int b) { return a>b; //降序排序,改为return a<b ,就是升序 }
实例
对数组a[5]={1,5,2,6,3}降序排序
bool cmp(int a,int b) { return a>b; } int main() { sort(a,a+5,cmp); return 0; }
qsort()
qsort (void*, size_t, size_t,int ()(const void, const void*));qsort ( 数组名 ,元素个数,元素占用的空间(sizeof),比较函数)
比较函数是一个自己写的函数 遵循 int com(const void *a,const void *b) 的格式。
当a b关系为 > < = 时,分别返回正值 负值 零 (或者相反)。
使用a b 时要强制转换类型,从void * 转换回应有的类型后,进行操作。
数组下标从零开始,个数为N, 下标0-(n-1)。
int cmp(const void *a,const void *b) { return *(int*)b-*(int*)a; //这是升序排列,如果要降序,把a,b位置对换 } int main() { int a[20]={2,4,1,23,5,76,0,43,24,65},i; for(i=0;i<20;i++) cout<<a[i]<<endl; qsort((void *)a,20,sizeof(int),cmp); for(i=0;i<20;i++) cout<<a[i]<<endl; return 0;
sort 与qsort 的cmp()函数写法对比
sort:bool cmp(int a,int b) { return a>b; //记住!!!是 < or > 不是减号!!! }
qsort:
int cmp(const void *a,const void *b) { return *(int*)b-*(int*)a; //是减号!!!a-b是升序 b-a是降序 }
相关文章推荐
- qsort 函数的使用方法
- 在c 中qsort()排序函数的使用qsort函数应用大全
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- C++ 排序函数 sort(),qsort()的使用方法
- 在c++中qsort()排序函数的使用qsort函数应用大全
- LeetCode/sort(地址A,地址B)和qsort(首地址,元素个数,sizeof(),cmp比较函数)的使用
- qsort函数使用大全
- C语言qsort函数使用
- C++ 排序函数 sort(),qsort()的使用方法
- 总结一下qsort()函数的使用与注意
- c++中qsort()排序函数的使用qsort函数应用大全
- 在c++中qsort()排序函数的使用qsort函数应用大全
- qsort函数使用
- 杂记之函数qsort的使用
- C++可直接使用的排序函数:qsort(),sort()
- 【转】在c++中qsort()排序函数的使用qsort函数应用大全
- qsort()函数使用
- C++ 排序函数 sort(),qsort()的使用方法
- 使用qsort()和bsearch()函数对值和字符串进行排序和查找