qsort( )使用和实现
来源:互联网 发布:清华直博生待遇 知乎 编辑:程序博客网 时间:2024/06/13 10:37
qsort() 的头文件是:
#include < stdlib.h >
函数原型:
void __cdecl qsort (void * base, size_t num ,size_t width, int ( __cdecl * comp)(const void * , const void * ) )
函数说明:
__cdecl :调用约定。
base:传入数组。
num:比较元素个数。
width:元素大小(一次读取字节个数)。
comp:大小比较函数(由自己写,传参时传入)
先使用一下qsort:
int cmp_int(const void *fp, const void *sp){ return *((int *)fp) - *((int *)sp);}int cmp_double(const void *fp, const void *sp){ return *((double *)fp) > *((double *)sp) ? 1 : -1;}int cmp_char(const void *fp, const void *sp){ return *((char *)fp) - *((char *)sp);}int cmp_string(const void *fp, const void *sp){ return strcmp((char *)fp,(char *)sp);}/////////////////////////////////////////////////////////int main(){ /*****int*****/ int arr1[5] = { 7, 1, 9, 3, 2, }; qsort(arr1, 5, sizeof(arr1[0]), cmp_int); printf("int ---> "); for (int i = 0; i < 5; i++) { printf("%d ",arr1[i]); } printf("\n\n"); /*****double*****/ double arr2[5] = { 2.5, 4.7, 2.51, 1.7, 1.70, }; qsort(arr2, 5, sizeof(arr2[0]), cmp_double); printf("double---> "); for (int i = 0; i < 5; i++) { printf("%f ", arr2[i]); } printf("\n\n"); /*****char*****/ char arr3[6] = { "becda" }; qsort(arr3, 5, sizeof(arr3[0]), cmp_string); printf("char ---> "); for (int i = 0; i < 5; i++) { printf("%c ", arr3[i]); } printf("\n\n"); /*****string*****/ char arr4[5][10] = { "break", "hello", "kill", "bread", "company", }; qsort(arr4, 5, 10, cmp_string); printf("string---> "); for (int i = 0; i < 5; i++) { printf("%s ", arr4[i]); } printf("\n\n"); system("pause"); return 0;}
运行结果:
看起来挺好用,写一个my_qsort:
阅读全文
0 0
- qsort( )使用和实现
- qsort原理和实现
- 使用qsort实现快速排序
- sort和qsort使用模板
- qsort和bsearch的使用
- qsort函数和bsearch函数的使用
- qsort函数和bsearch函数的使用
- 库函数sort 和 qsort的使用
- qsort函数和bsearch函数的使用
- C语言qsort的用法和使用
- 使用qsort()和bsearch()进行快速排序和折半查找
- STL中的sort,和qsort的使用和区别
- 使用插入排序实现qsort函数(练习)
- 使用回调函数实现qsort(冒泡排序)
- C/C++中关于qsort和sort函数的使用
- 对于qsort和sort使用效率的详细对比
- qsort原理 实现
- C++ qsort 实现
- php变量定义和输出
- 在命令行下,如何使用JAD反编译jar文件
- 回溯进阶---迭代深搜IDA*---埃及分数
- 用c语言创建一个窗口
- ASCII、GB2312、GBK、Unicode、UTF-8、UTF-16 编码方式比较分析
- qsort( )使用和实现
- 杭电ACM OJ 1033 Edge 本题考查英文过了6级没有和谷歌翻译的使用
- 714. Best Time to Buy and Sell Stock with Transaction Fee
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- I can 前端-07 ASP.NET 常用对象
- 【Scikit-Learn 中文文档】模型持久化
- 客户端关闭,服务器端SocketException异常解决方案
- 【Scikit-Learn 中文文档】验证曲线: 绘制分数以评估模型
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量