- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 08 16 21 25* 25 49 交换 1号与3 号记录 21 16 08 25* 25 49 从 1 号到 3号重新 调整为最大堆 21 16 25* 08 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 * 08 16 21 25* 25 49 交换 1 号与2 号记录 16 08 21 25* 25 49 从 1 号到 2 号重新 调整为最大堆 16 08 25* 21 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 * 基于初始堆进行堆排序的算法步骤: 堆的第一个对象V[0]具有最大的关键码,将V[0]与V [n] 对调,把具有最大关键码的对象交换到最后; 再对前面的n-1个对象,使用堆的调整算法,重新建立堆。 结果具有次最大关键码的对象又上浮到堆顶,即V[0]位置。 再对调V[0]和V[n-1]; 调用建堆的调整算法对前n-2个对象重新调整, …如此反复,最后得到全部排序好的对象序列。 * 堆排序算法分析: 时间效率: O(nlog2n)。 因为整个排序过程中需要调用n-1次HeapAdjust( )算法,而算法本身耗时为log2n; 空间效率:O(1)。仅在第二个for循环中交换记录时用到一个临时变量temp。 稳定性: 不稳定。 优点:对小文件效果不明显,但对大文件有效。 * 简单选择排序: 时间复杂度:O(n2) 空间复杂度:O(1) 稳定性:不稳定 锦标赛排序: 时间复杂度: O(nlog2n) 空间复杂度: O(n) 稳定性:稳定 堆排序: 时间复杂度: O(nlog2n) 空间复杂度: O(1) 稳定性:不稳定 * 1. 以下序列不是堆的是( )。 A. (100, 85, 98, 77, 80, 60, 82, 40, 20, 10, 66) B. (100, 98, 85, 82, 80, 77, 66, 60, 40, 20, 10) C. (10, 20, 40, 60, 66, 77, 80, 82, 85, 98, 100) D. (100, 85, 40, 77, 80, 60, 66, 98, 82, 10, 20) 2. 下列四个序列中,哪一个是堆( )。 A. 75, 65, 30, 15, 25, 45, 20, 10 B. 75, 65, 45, 10, 30, 25, 20, 15 C. 75, 45, 65, 30, 15, 25, 20, 10 D. 75, 45, 65, 10, 25, 30, 20, 15 D C * 10.5 归并排序 归并排序的基本思想是:将两个(或以上)的有序表 组成新的有序表。 更实际的意义:可以把一个长度为n 的无序序列看成是 n 个长度为 1 的有序子序列,首先做两两归并,得到 ?n / 2? 个长度为 2 的子序列 ;再做两两归并,…,如此重复,直到最后得到一个长度为 n 的有序序列。即二路归并排序。 例:关键字序列T= (21,25,49,25*,93,62,72,08,37,16,54),请给出归并排序的具体实现过程。 * 21 25 25* 93 62 72 08 37 16 54 49 21 25 25* 49 62 93 08 72 16 37 54 16 37 54 21 25 25* 49 08 62 72 93 08 21 25 25* 49 62 72 93 08 16 21 25 25* 37 49 54 62 72 93 初始 第1趟 第2趟 第3趟 第4趟 16 37 54 整个归并排序仅需?log2n ?趟 * 归并排序算法分析: 时间效率: O(nlog2n) 一趟归并排序的操作是:调用[n/2h]次算法merge将SR[1..n]中前后相邻且长度为h的有序段进行两两归并,得到前后相邻长度为2h的有序段,并存放在TR[1..n]中,整个归并排序需要进行[log2n]趟,所以算法总的时间复杂度为O(nlog2n)。 空间效率: O(n) 因为需要一个与原始序列同样大小的辅助序列(TR)。这正是此算法的缺点。 稳定性:稳定 * 10.6 基数排序 (Radix Sort) 要讨论的问题: 1. 什么是“多关键字”排序?实现方法? 2. 单逻辑关键字怎样“按位值”排序? 基数排序的基本思想是: 借助多关键字排序的思想对单逻辑关键字进行
您可能关注的文档
- 大学生活动中心调研解决方案.ppt
- 第9章陶瓷的制备导论.ppt
- 第9章套管工程检测测井-1导论.ppt
- 大学生活学习方法解决方案.ppt
- 大学生基础英语单词解决方案.ppt
- 第9章特殊土地基导论.ppt
- 第9章通风导论.ppt
- 大学生就业心理1解决方案.ppt
- 大学生就业与劳动合同解决方案.ppt
- 第9章通信原理导论.ppt
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
文档评论(0)