C语言中qsort函数的用法实例详解
2017-10-31 14:34
671 查看
快速排序是一种用的最多的排序算法,在C语言的标准库中也有快速排序的函数,下面说一下详细用法。
qsort函数包含在<stdlib.h>中
qsort函数声明如下:
void qsort(void * base,size_t nmemb,size_t size ,int(*compar)(const void *,const void *));
参数说明:
base,要排序的数组
nmemb,数组中元素的数目
size,每个数组元素占用的内存空间,可使用sizeof函数获得
compar,指向函数的指针也即函数指针。这个函数用来比较两个数组元素,第一个参数大于,等于,小于第二个参数时,分别显示正值,零,负值。
下面看几个例子:
#include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> void main(void) { int i; int a[10]={0,1,2,3,4,5,6,7,8,9}; char b[10]={'a','b','c','d','e','f','g','h','i','j'}; double c[10]={0.1,0.2,0.9,0.5,0.3,0.6,0.7,0.8,1.1,1.2}; int cmp1(const void * a,const void * b) { return (*(int*)a-*(int*)b);//a>b 返回正值 } int cmp2(const void * a,const void *b) { return(*(char*)a-*(char*)b); } int cmp3(const void * a,const void * b) { if(fabs(*(double*)a-*(double *)b)<1*exp(-20)) return 0; else return(((*(double*)a-*(double*)b)>0)?1:-1); } qsort(a,10,sizeof(int),&cmp1);//对于函数指针(指向函数的指针),直接传入函数名和函数名进行& //运算都是可以的,因为在调用函数时也是取的函数的地址 qsort(b,10,sizeof(char),cmp2); qsort(c,10,sizeof(double),cmp3); for(i=0;i<10;i++) printf("%d ",a[i]); for(i=0;i<10;i++) printf("%c ",b[i]); for(i=0;i<10;i++) printf("%lf ",c[i]); }
相关文章推荐
- C语言中qsort函数用法详解
- jquery中cookie用法实例详解(获取,存储,删除等)
- Android Toast通知用法实例详解
- Ajax用法实例详解
- jsp自定义标签用法实例详解
- C语言main函数的三种形式实例详解
- js事件监听器用法实例详解
- jquery中attr()与prop()函数用法实例详解(附用法区别)
- Python作用域用法实例详解
- Oracle Merge Into 的用法详解实例
- C语言转义字符实例详解
- jQuery中on()方法用法实例详解
- python time模块用法实例详解
- php正则修正符用法实例详解
- android之camera用法实例详解
- Linux下find 命令用法详解+实例
- Oracle触发器用法实例详解
- mysql事务处理用法与实例详解
- mysql事务处理用法与实例详解
- Angular中$cacheFactory的作用和用法实例详解