- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章主要内容 本章主要内容,本章详细介绍了排序的基本概念和常见的排序方法,包括常用的内部排序方法,外部排序方法等内容。通过本章的学习,应掌握如下内容: l???????? 插入排序 l??????? ? 交换排序 l??????? ? 选择排序 l??????? ? 归并排序 l??????? ? 基数排序 l????????? 外部排序 l 各种排序的比较 算法分析:时间复杂度:在n个记录的待排序列中,一次划分需要约n次关键码比较。若每次划分的前后两部分数据元素个数基本相等,则需要经过log2n次划分,所以算法时间复杂度为nlog2n,最坏情况下,时间复杂度为O(n2)。空间复杂度:快速排序是递归的,每层递归调用的指针和参数均要用栈来存放,递归调用次数与二叉树的深度一致。存储开销在理想情况下为O(log2n),即树的高度;在最坏情况下,二叉树是一个单支,这时算法的空间复杂度为为O(n)。 53 36 85 47 91 输出30,将91送入堆顶,调整恢复堆 53 47 85 91 36 输出24,将53送入堆顶,调整恢复堆 36 30 85 47 91 53 53 36 85 47 30 91 85 91 输出53, 将91送入堆顶 91 85 53 47 85 91 输出36,将91送入堆顶,调整恢复堆 53 85 91 47 53 85 91 输出47,将91送入堆顶, 调整恢复堆 91 85 53 归并的含义是将两个或两个以上的有序序列归并成一个新的有序表。归并排序可分为多路归并排序和两路归并排序。它既可以用于内部排序,也可以用于外部排序。 一趟两路归并算法的思想(以升序为例):先用两个指针分别指向两个序列的第一个数据元素,进行比较,取出较小者,然后将其所在序列的指针后移,重复以上过程,直到指针达到序列的末尾,这时将另一个序列的剩余元素依次顺序放到有序序列的后面即可。 10.5 归并排序 将两个有序序列L-data[t..m]和L-data[m+1..n]归并为有序序列L1-[t..n]的过程: ⑴ i=t;j=m;k=t; ⑵ 若im 或 jn,执行⑸; ⑶ 比较L-data[i]和L-data[j]关键字,将较小的存入L1中: 如果L-data[i].keyL-data[j].key; L1-data[k]=L-data[i];i++; k++;执行⑵; 否则,L1-data[k]=L-data[j];j++;k++;执行⑵; ⑷ 将尚未处理完的子表中元素存入L1; 如果i=m,将L-data[i…m]存入L1-data[k…n]; 如果j=n,将L-[j…n]存入L1-data[k…n]; ⑸ 合并结束。 【算法9.7】 一趟两路归并排序 void Merge(SL *L,SL *L1,int t,int m,int n) { for(i=t,j=m,k=t;i=m j=n;k++) { if(L-data[i].keyL-data[j].key) { L1-data[k]=L-data[i];i++;} else {L1-data[k]=L-data[j];j++;} } /* for */ if(i=m) L1-data[k…n]=L1-data[i…m-1]; if(j=n) L1-data[k…n]=L1-data[j…n]; } /*Merge*/ 【例10-7】有一个序列12,9,44,10,99,61,65,43,76,其两路归并算法的过程: 初始关键字 [12] [9] [44] [10] [99] [61] [65] [43] [76] 一趟归并后 [9 12] [10 44] [61 99] [43 65] [76] 二趟归并后 [9 10 12 44] [43 61 65 99] [76] 三趟归并后 [9 10 12 43 44 61 65 99] [76] 四趟归并后 [9 10 12 43 44 61 65 76 99 ] 两路归并排序思想:把序列所含的n个记录看作n个有序的子序列,然后两两归并,得[n/2]个长度为2或1的有序子序列;再两两归并,以此类推直到得到的子序列长度为n,排序完毕。 算法分析: 空间复杂度为O(n)。 时间复杂度:对包含n个数据元素的表,将这n个数据元素看作叶子结点,若将两两归
您可能关注的文档
- 第二章生物小分子.ppt
- 携程网营销策略分析.ppt
- 摸到红球的概率.ppt
- 撑起一片关爱的天空.ppt
- 第二章相平衡.ppt
- 撒哈拉以南的非洲经济.ppt
- 第二章矿井空气流动基本理论(安全工程).ppt
- 操作系统第五章.ppt
- 第二章统计学基础知识.ppt
- 攀西地区交流会4月.ppt
- 企业级数据治理平台助力国家电网全业务数据中心建设(58页 PPT).pptx
- 2025年春全品作业本七年级语文下册人教版安徽专版答案.pdf
- 2025年春全品作业本七年级历史下册人教版安徽专版答案.pdf
- 2025年春全品作业本七年级语文下册人教版河南专版答案.pdf
- 2025年春全品作业本七年级历史下册人教版陕西专版答案.pdf
- 2025年春英语作业本七年级英语下册人教版答案.pdf
- 2025年春全品作业本七年级历史下册人教版山西专版答案.pdf
- 2025年春全品作业本七年级历史下册人教版河南专版答案.pdf
- 2025年春同步教材解析三步讲堂六年级语文下册人教版答案.pdf
- 2025年春全品作业本七年级道德与法治下册人教版内蒙古专版答案.pdf
文档评论(0)