- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本讲小结 排序的概念 插入排序的方法 希尔排序的方法 作业:请及时完成第8章查找的作业。 希尔排序特点 子序列的构成不是简单的“逐段分割”,而是将相隔某个增量的记录组成一个子序列 希尔排序可提高排序速度,因为 分组后n值减小,n2更小,而T(n)=O(n2),所以T(n)从总体上看是减小了 关键字较小的记录跳跃式前移,在进行最后一趟增量为1的插入排序时,序列已基本有序。 增量序列取法 希尔排序算法的时间性能是所取增量的函数,而到目前为止尚未有人求得一种最好的增量序列。 最后一个增量值必须为1 三、希尔排序 Shell Sort 有一组记录的关键字为:(6,2,0,9,1,5,3,8,7,4),给出直接插入排序和希尔排序(增量为4,2,1)的排序过程。 实战 * * 主讲教师:章 英 数据结构与算法 第21讲 插入排序 本讲知识点: (1)了解排序的相关基础知识 (2)掌握插入排序、希尔排序的算法 难点:希尔排序 排序的基本概念 各种排序方法 各种排序方法的比较 排序知识体系结构 排序 插入排序 选择排序 交换排序 归并排序 基数排序 直接插入排序 折半插入排序 链表插入排序 希尔排序 直接选择排序 堆排序 冒泡排序 快速排序 一、排序的定义 Sorting 排序的基本概念 假设含n个记录的序列为{ R1, R2, …, Rn } 其相应的关键字序列为 { K1, K2, …,Kn } 这些关键字相互之间可以进行比较,即在 它们之间存在着这样一个关系 : Kp1≤Kp2≤…≤Kpn 按此固有关系将上式记录序列重新排列为 { Rp1, Rp2, …,Rpn } 的操作称作排序。 排序算法的稳定性:假定在待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次序仍然保持不变,即在原序列中,ki=kj且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。 排序的基本概念 一、排序的定义 Sorting 学号 姓名 高数 英语 思想品德 0001 王 军 85 88 0002 李 明 64 92 0003 汤晓影 85 86 … … … 68 72 78 … … 学号 姓名 高数 英语 思想品德 0001 王 军 85 88 0002 李 明 64 92 0003 汤晓影 85 86 … … … 68 72 78 … … 排序的基本概念 单键排序:根据一个关键码进行的排序; 多键排序:根据多个关键码进行的排序。 按学号排序——单键排序 按成绩(高数+英语+思想品德)排序——多键排序 一、排序的定义 Sorting 1. 内排序:在排序的整个过程中,待排序的所有记录全部被放置在内存中 2. 外排序:由于待排序的记录个数太多,不能同时放置在内存,而需要将一部分记录放置在内存,另一部分记录放置在外存上,整个排序过程需要在内外存之间多次交换数据才能得到排序的结果。 排序的分类 外部排序:多路平衡归并、置换-选择。 一、排序的定义 Sorting 1. 基于比较:基本操作——关键码的比较和记录的移动,其最差时间下限已经被证明为Ω(nlog2n)。 2. 不基于比较:根据关键码的分布特征。 基于比较的内排序 1. 插入排序 2. 交换排序 3. 选择排序 4. 归并排序 5. 基数排序 排序的分类 一、排序的定义 Sorting 排序算法的性能 1. 基本操作。内排序在排序过程中的基本操作: ⑴比较:关键码之间的比较; ⑵移动:记录从一个位置移动到另一个位置。 2. 辅助存储空间。 辅助存储空间是指在数据规模一定的条件下,除了存放待排序记录占用的存储空间之外,执行算法所需要的其他存储空间。 3.算法本身的复杂程度。 一、排序的定义 Sorting 1、直接插入排序 排序过程:整个排序过程为n-1趟插入,即先将序列中第1个记录看成是一个有序子序列,然后从第2个记录开始,逐个进行插入,直至整个序列有序。 基本思想:在插入第 i(i>1)个记录时,前面的 i-1个记录已经排好序。 二、插入排序 Insertion Sort 有序序列elem[0..i-1] elem[i] 无序序列 elem[i..n-1] 一趟直接插入排序的基本思想: 有序序列elem[0..i] 无序序列elem[i+1..n-1] 实现“一趟插入排序”可分三步进行: 3.将elem[i] 插入(复制)到elem[j+1]的位置上。 2.将elem[j+1..i-1]中的所有记录均后移 一个位置; 1.在elem[
文档评论(0)