C和C++库中的排序函数——sort与qsort解析
2016-02-02 14:25
260 查看
如何使用C语言库中stdlib.h包含的qsort和C++库里的sort函数进行排序
qsort:
这里写代码片 #include <stdio.h> #include <stdlib.h> int cmp(const void *a,const void *b) { return *(int*)a < *(int*)b; } int main() { int arr[5] = {5,3,1,4,2}; qsort(arr,5,sizeof(int),cmp); int i; for (i = 0;i < 5;i++) { printf("%d\n",arr[i]); } return 0; }
结果:
5
4
3
2
1
sort:
这里写代码片 #include <cstdio> #include <cmath> #include <algorithm> using namespace std; int cmp(int a,int b) { return a < b; } int main() { int arr[5] = {5,3,1,4,2}; sort(arr,arr+5,cmp); int i; for (i = 0;i < 5;i++) { printf("%d\n",arr[i]); } return 0; }
结果:
1
2
3
4
5
注意事项:
读者除了注意两个函数的所要包含的头文件和排序函数的参数不一样之外,cmp函数的参数类型也不样;
cmp函数建议使用int返回类型,特别是使用c语言时,使用bool返回类型可能会报错;
cmp中返回a小于b的真值时,qsort按降序排序,sort按增序排序
对于qsort,cmp返回正数就是说 cmp 传入参数第一个要放在第二个后面, 负数就是传入参数第一个要放第二个前面, 如果是 0, 那就无所谓谁前谁后
相关文章推荐
- c++ imooc自学计划
- Java .Net C++ RSA 加密
- 查找二叉树的C++代码实现
- Boost 学习之算法篇 gather
- [Android-NDK编译] ndk 编译 c++ 兼容性问题汇总整理
- some cpp conventions
- c++自学计划
- C++中四个与类型转换相关的关键字
- 【教程】“回调特性”的使用教程(C++语言)
- [c++]返回数组
- eclipse安装C/C++插件cdt
- C++ 字符数组、字符串【输入、输出】
- (C++)链表实现Farey序列
- C#与C++的发展历程第四 - C#6的新时代
- C语言小知识复习1
- c++ 类的堆成员的声明及使用
- Boost 学习之算法篇 clamp
- C语言中const的用法
- C语言建立动态数组
- Windows编程C++之第一个Windows程序