下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.qsort功能:原型: void qsort (void * base,int nelem,int width,int (* fcmp) (const void *,const void *);函数:使用快速排序例程进行排序参数:1要排序的数组的第一个地址2数组中要排序的元素数3每个元素占用空间的大小4指向函数的指针,用于确定排序顺序说明:qsort函数在ANSI C标准中提供,在stdlib.h文件中声明,按照二分法编写,时间复杂度为n*log(n)。qsort所需的函数是一个需要自己定义的比较函数,这使得qsort更加通用。通过比较函数qsort,您可以按升序或降序对数组、字符串、结构
2、和其他结构进行排序。在int cmp中有两个元素作为参数(const void *a,const void *b)(参数的格式不能更改。)返回一个int值。如果比较函数返回大于0,qsort将考虑b,如果它返回小于0,qsort将考虑b。Qsort知道元素的大小,所以它可以将大的放在前面。如果您的比较函数在应该是1(即B)时返回-1(小于0的数字),那么qsort认为是B,所以它将B放在第一位,但它实际上是B,这就造成了降序的不同。简而言之,比较函数的功能是显示如何比较元素的大小。2.2.qsort中几种常见的cmp功能:首先,对整型数组进行排序int num100;int cmp(常量voi
3、d *a,常量void *b)返回*(int *)a-*(int *)b;qsort(num,100,sizeof(num0),cmp其次,对字符类型数组进行排序(与int类型相同)字符100;int cmp(常量void *a,常量void *b)返回*(char *)a-*(int *)b;qsort(word,100,sizeof(word0),cmp第三,对双型数组进行排序(特别注意)双入100;int cmp(常量void *a,常量void *b)返回*(double *)a *(double *)b?1 :-1;qsort(in,100,sizeof(in0),cmp第四,在第一
4、层对结构进行排序结构双重数据;其他;s100/根据数据值从小到大对结构进行排序。结构中有许多类型的排序关键数据。请参考上面的例子。int cmp(常量void *a,常量void *b)返回(*(In *)a)-数据(*(In *)b)-数据?1 :-1;qsort(s,100,sizeof(s0),cmp第五,结构在第二层排序结构int x;int y; s100;/按x从小到大排序,当x相等时,按y从小到大排序int cmp(常量void *a,常量void *b)结构In * c=(In *)a;结构In * d=(In *)b;if(c-x!=d-x)返回c-x - d-x。否则返回d
5、-y-c-y;qsort(s,100,sizeof(s0),cmp6.对字符串排序结构int数据;char字符串100; s100;/根据结构中字符串的字典顺序进行排序int cmp(常量void *a,常量void *b)返回字符串(*(In *)a)-字符串(*(In *)b)-字符串);qsort(s,100,sizeof(s0),cmp七、计算几何中凸包的cmpIntcmp (const void * a,const void * b)/键cmp函数,该函数对除一个点和旋转角度之外的所有点进行排序结构点*c=(点*)a;结构点*d=(点*)b;如果(calc(*c,*d,p1) 0)返回1;否则如果(!计算(* c,* d,p 1) dis (c-x,c-y,p 1)。x,p 1。y) dis (d-x,d-y,p 1。x,p 1。y)/。返回1;否则返回-1;3 .排序和排序之间的比较:1.qsort中cmp函数与CMP函数的区别int cmp(const int a,const int b)返回ab排序中的Cmp函数参数可以直接引用参与比较的类型。2.比较2.cmp函数时,qsort使用“-”,而sort使用“”。这也是一个重要的区别。3.排序函数是C语言中标准模板库的一个函数,已经在qsort()上进行了优化,可以根据不同的情况采用不同的算法,因此速度更快。在相
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线缆生产项目生产线布局设计方案
- 水库环保围隔设置方案
- 石墨生产尾渣资源化处置方案
- 汽车滤芯和包装物综合处理利用项目商业计划书
- 零碳园区建筑围护结构节能方案
- 光伏施工期水土保持方案
- 高性能聚酯新材料生产项目环保处理方案
- 分布式光储充一体化工程运维巡检方案
- 电动船舶生产项目运营管理方案
- 2026年大数据施工工程施工协议
- 数据中心DCIM技术系统培训
- 2026广西北海市市场监督管理局招聘后勤人员控制数2人笔试备考试题及答案详解
- 2025年新疆维吾尔自治区克拉玛依市八年级地生会考真题试卷(+答案)
- 河南省开封市2026届九年级中考二模历史试卷(有答案)
- 2026云南昆明昆明晋宁产业园区运营管理有限公司员工招聘4人笔试参考题库及答案解析
- 小升初2025~2026学年浙江省宁波市鄞州区(人教版)数学考试试题 含答案
- 第十一章盐土和碱土
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- 辽宁省大连市2023年英语小升初试卷(含答案)
- 【骆驼祥子思想艺术特色中的悲剧色彩(论文)】
- 2022-2023学年广西壮族来宾市兴宾区数学四年级第二学期期末达标检测模拟试题含解析
评论
0/150
提交评论