《C primer plus》qsort(...)-快速排序法
来源:互联网 发布:傻瓜进销存软件破解版 编辑:程序博客网 时间:2024/06/06 07:24
/*快速排序法函数原型(stdlib.h内声明了该原型)void qsort(void*, size_t, size_t, int*(const void*, const void*))或void qsort(void *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *)第一个参数base--需要排序的数组地址既数组头部的指针第二个参数nmemb--需要排序的member数第三个参数size--需要排序的单个元素的大小--一般是传入 sizeof(类型名)第四个参数int(*compar)(const void *,const void *)--传入一个指向函数的指针,该形式的函数需要自己定义。qsort根据返回的int值来决定升序、降序或其他自定义的实现。qsort会将第一个参数所指向的数组中的两个元素的地址传入该函数。*/#include <stdio.h>#include <stdlib.h>#define NUM 40void fillarray(double ar[],int n);void showarray(const double ar[],int n);int mycomp(const void * p1,const void * p2);int main(void){double vals[NUM];fillarray(vals,NUM); //给vals数组赋值puts("Random list: ");showarray(vals,NUM);//显示数组各元素qsort(vals,NUM,sizeof(double),mycomp); //从大到小排序puts("\nSorted list: ");showarray(vals,NUM);//显示经排序后的数组return 0;} //操作数组空间的函数--赋予vals数组各元素具体的值 void fillarray(double ar[],int n){int index;for(index=0;index<n;index++)ar[index]=(double)rand()/((double)rand()+0.1);}//显示排序前的通过随机产生的数组元素void showarray(const double ar[],int n){int index;for(index=0;index<n;index++){printf("%9.4f ",ar[index]);if(index%6 == 5)putchar('\n');}putchar('\n'); } //默认按按从小到大的顺序排序值,如果将*a1>*a2返回-1就是降序int mycomp(const void *p1,const void * p2){//先转换成需要比较的数组的类型 const double * a1=(const double *)p1;const double * a2=(const double *)p2;if(*a1>*a2) return 1;else if(*a1==*a2) return 0; else return -1; }
0 0
- 《C primer plus》qsort(...)-快速排序法
- C Primer Plus学习 五十六 qsort ()函数
- 二分法快速排序法 qsort C源码
- 快速排序法qsort
- qsort 快速排序法
- 快速排序法qsort
- 快速排序Qsort--C语言版
- C语言qsort快速排序
- C/C++ qsort()快速排序的用法
- C语言下使用快速排序qsort
- C语言中用qsort()快速排序
- C语言中用qsort()快速排序
- C/C++ qsort()快速排序的用法
- C/C++ 库函数快速排序 qsort
- 快速排序 qsort c语言代码
- C/C++快速排序函数qsort
- qsort函数 C语言快速排序函数
- C/C++ qsort()快速排序的用法
- Connect教程系列--响应式布局(一)
- RevitAPI外部服务介绍(ExternalService)
- Opencv step by step - 阈值化
- linux系统启动
- 黑马程序员_javaIO编程和字符集
- 《C primer plus》qsort(...)-快速排序法
- Linux Shell学习
- log4j
- 黑马程序员_java的一些新特性
- 杭电1002
- Javascript:谈谈JS的全局变量跟局部变量
- 老笔记本硬盘扩容记
- Vs2012在Linux开发中的应用(3):添加新平台hi3516
- glDrawPixels使用注意事项