qsort的简介和用法

上传人:206****923 文档编号:51436160 上传时间:2018-08-14 格式:PPT 页数:11 大小:44.50KB
返回 下载 相关 举报
qsort的简介和用法_第1页
第1页 / 共11页
qsort的简介和用法_第2页
第2页 / 共11页
qsort的简介和用法_第3页
第3页 / 共11页
qsort的简介和用法_第4页
第4页 / 共11页
qsort的简介和用法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《qsort的简介和用法》由会员分享,可在线阅读,更多相关《qsort的简介和用法(11页珍藏版)》请在金锄头文库上搜索。

1、C函数qsort的简介和用法BY:SMJUNC函数qsort实现快速排序排序方法有很多种:选择排序,冒泡排序 ,归并排序,快速排序等。 看名字都知道快速排序 是目前公认的一种 比较好的排序算法,比选择排序,冒泡排 序都要快。因为它的速度很快,所以系统 也在库里实现这个算法,便于我们的使用 。 这就是qsort。qsort简介 qsort函数是ANSI C标准中提供的,其声明在 stdlib.h文件中,是根据二分发写的,其时间复杂 度为n*log(n),其结构为: void qsort(void *base,size_t nelem,size_t width, cmp); *base 为要排序的

2、数组 nelem 为要排序的数组的长度 width 为数组元素的大小(一字节为单位) 简单示例:对int num100排序,qsort中各参数 怎么写? qsort(num,100,sizeof(num0),cmp);自定义比较函数 比较函数的名字是自定义的(这里我们用CMP命名); Cmp:qsort 要求提供的这个函数是一个需要自己定义的比较函 数,比较函数使得qsort通用性更好。有了比较函数qsort可以实 现对数组,字符串,结构体等结构进行升序或降序排序。 Int Cmp(const void *a , const void *b )中有两个元素作为参数, 返回一个int值, 如果比

3、较函数返回大于0,qsort就认为 ab , 如果比较函数返回等于0 qsort就认为a 和b 这两个元素相等,返 回小于零 qsort就认为 ab),你比较函数却返回 一个 -1 (小于零的)那么qsort认为a #include int cmp_1 ( int *a , int *b ) return *a - *b; int cmp_2 ( int *a , int *b ) return *b - *a; void main() int num10=1,3,5,7,9,2,4,6,8,0; int i; qsort(num,10,sizeof(num0),cmp_1);/从小到大 fo

4、r(i=0;i #include int cmp_1 ( char *a , char *b ) return *a - *b; int cmp_2 ( char *a , char *b ) return *b - *a; void main() char ch10=“bcadfegihj“; int i; qsort(ch,10,sizeof(ch0),cmp_1);/从小到大 for(i=0;i #include struct coord int x; int y; data100;int cmp(struct coord *a ,struct coord *b) /根据y的大小排序 r

5、eturn a-y - b-y ; void main() int sum=0,n; int i,j; /freopen(“in.txt“,“r“,stdin); while(scanf(“%d“,i #include struct coord int x; int y; data100; int cmp(struct coord *a ,struct coord *b) if(a-x != b-x) return a-x - b-x; /按照x从小到大排序,当x相等时按照y从大到小排序 else return a-y - b-y ; void main() int sum=0,n; int i,j; freopen(“in.txt“,“r“,stdin); while(scanf(“%d“,istr , (*(In *)b)-str ); qsort(s,100,sizeof(s0),cmp); strcmp包含在的头文件里 END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号