- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
存放在地址连续的一组存储单元上:对记录本身进行物理重排(即通过关键字之间的比较判定,将记录移到合适的位置) ; 存放在静态链表中:无须移动记录,仅需修改指针。通常将这类排序称为链表(或链式)排序 ; 用顺序的方式存储待排序的记录,但同时建立一个辅助表(如包括关键字和指向记录位置的指针组成的索引表) :只需对辅助表的表目进行物理重排(即只移动辅助表的表目,而不移动记录本身)。适用于难于在链表上实现,仍需避免排序过程中移动记录的排序方法。 排序过程的两个基本操作: 两个关键字之间进行比较 将一个记录从一个位置移到另一个位置 评价标准 空间复杂度 时间复杂度 关键字的比较次数 移动记录的次数 49 40 27 12 73 81 98 36 55 64 在 49 和 36 进行互换之后,破坏了“堆”的特性,因此,需要对它进行“筛选”。 49 36 40 36 7.4.2 堆排序——6趟排序的过程 12 27 36 40 73 81 98 49 55 64 排序后的记录序列: {12,27,36,40,49,55,64,73,81,98} 7.4.2 堆排序——排序的结果 建“初堆”的基本方法: 从堆中最后一个有孩子的结点开始利用堆的性质进行调整。 40 55 49 73 81 64 36 12 27 98 (40,55,49,73,12,27,98,81,64,36) 12 36 81 73 49 98 81 73 55 98 49 40 64 36 12 27 7.4.2 堆排序——建立初始堆的方法 对深度为 k 的堆,“筛选”所需进行的关键字比较的次数至多为2(k-1); 2. 对 n 个关键字,建成深度为h(=?log2n?+1)的堆,所需进行的关键字比较的次数至多 4n; 3. 需要调整“堆” n-1 次,总共进行的关键字比较的次数不超过 2 (?log2(n-1)?+ ?log2(n-2)?+ …+log22) 2n(?log2n?) 因此,堆排序的时间复杂度为O(nlogn)。 优势:节省空间且堆原始数据的排序不敏感。 7.4.2 堆排序——时间复杂度分析 7.5 归 并 排 序 “归并”的含义是将两个或两个以上的有序表合成一个新的有序表。 假设初始表含有n个记录,则可看成是n个有序的子表,每个子表的长度为1,然后两两归并,得到?n/2?个长度为2或1的有序子表,再两两归并,如此重复,直至得到一个长度为n的有序子表为止,这种方法称为“二路归并排序”。 7.5 归并排序——算法思想 在内部排序中,通常采用的是2-路归并排序。即:将两个位置相邻的记录有序子序列。 归并为一个记录的有序序列。 有 序 序 列 L.r [l..n] 有序子序列 L.r[l..m] 有序子序列 L.r [m+1..n] 7.5 归并排序——算法思想 7.5 归并排序——排序过程 容易看出,对 n 个记录进行归并排序的时间复杂度为Ο(nlog2n)。即:每一趟归并的时间复杂度为 O(n),总共需进行 ?log2n? 趟。 归并排序的特点: 是一种稳定性排序方法。辅助空间复杂度:O(n),时间复杂度:Ο(nlog2n)。 7.5 归并排序——性能分析 7. 6 各种排序方法的综合比较 1. 平均的时间性能 时间复杂度为 O(nlogn): 快速排序、堆排序和归并排序 时间复杂度为 O(n2): 直接插入排序、冒泡排序和 简单选择排序 7.6 各种排序方法的综合比较——时间性能分析 2.最坏时间性能 时间复杂度为 O(nlogn): 堆排序和归并排序 时间复杂度为 O(n2): 快速排序、直接插入排序、 冒泡排序和简单选择排序 7.6 各种排序方法的综合比较——时间性能分析 3. 当待排记录序列按关键字顺序有序时 4. 简单选择排序、堆排序和归并排序的时间性能不随记录序列中关键字的分布而改变。 直接插入排序和起泡排序能达到O(n)的时间复杂度, 快速排序的时间性能退化为O(n2) 。 7.6 各种排序方法的综合比较——时间性能分析 5. 2000年实验结果(主频200,单位:秒) 7.6 各种排序方法的综合比较——时间性能分析 0.28 0.8 584.67 199 286.92 2万(降序) 0.23 0.75 0.03 185.78 0.05 2万(升序) 0.47 0.77 399.47 185.05 143.67 20000 0.33 0.58 223.28 103 80.23 15000 0.22 0.35 99.1 46.02 35.43 10000 0.17 0.28 64.03 29.43 23.15 8000 0.07 0.13
您可能关注的文档
- 计算机组装、维护与维修教程 作者 刘瑞新 第14章 笔记本电脑.ppt
- 计算机组装与维修 作者 张兴明 第1章认识计算机组件.ppt
- 计算机组装与维修 作者 张兴明 第2章组装计算机硬件.ppt
- 计算机组装与维修 作者 张兴明 第3章 BIOS基本设置.ppt
- 计算机组装与维修 作者 张兴明 第4章硬盘与硬盘分区.ppt
- 计算机组装与维修 作者 张兴明 第5章安装操作系统.ppt
- 计算机组装与维修 作者 张兴明 第7章安装常用应用软件.ppt
- 计算机辅助工艺设计 capp系统设计 作者 赵良才 主编 目录.ppt
- 计算机辅助绘图与设计-AutoCAD 2006 第3版 作者 赵国增 主编 第八章.ppt
- 计算机辅助绘图与设计-AutoCAD 2006 第3版 作者 赵国增 主编 第二十章.ppt
文档评论(0)