网站大量收购独家精品文档,联系QQ:2885784924

第10篇 章 内部排序 数据结构 (第二版) .ppt

第10篇 章 内部排序 数据结构 (第二版) .ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10篇 章 内部排序 数据结构 (第二版) .ppt

10.4 选择排序 ⒊ 调整方法 ⑴ 将堆顶元素和堆的最后一个元素位置交换; ⑵ 然后以当前堆顶元素和其左、右子树的根结点进行比较(此时,左、右子树均为堆),并与值较小的结点进行交换; ⑶ 重复⑵,继续调整被交换过的子树,直到叶结点或没进行交换为止。 称这个调整过程为筛选。 第十章 内部排序 基本概念 插入排序 快速排序 选择排序 归并排序 基数排序 10.1 基本概念 设含有n个记录的文件{R1,R2,...,Rn},其相应的关键字为{K1,K2,...,Kn},将记录按关键字值非递减(或非递增)顺序排列的过程,称为排序。 对所有的Ki=Kj (i≠j),若排序前Ri领先于Rj,排序后Ri仍领先于Rj,则称该排序方法是稳定的,反之,称为不稳定 的。 稳定性是对序列中的两个相同的关键字在初始序列和最终有序序列中相对位置(即领先关系)是否变化。 10.1 基本概念 内部排序:待排序文件的全部记录存放在内存进行的排序,称为内部排序。 外部排序:排序过程中需要进行内外存数据交换的排序,称为外部排序。 10.1 基本概念 内排序分类 按排序过程依据的原则分为:插入排序 交换排序 选择排序 归并排序 计数排序 按排序过程所需的工作量分:简单排序 O(n2) 先进排序 O(nlogn) 基数排序 O(d.n) 10.2 插入排序 一. 直接插入排序 (最简单的排序方法) ⒈ 基本思想:依次将每个待排序的记录插入到一个有序子文件的合适位置(有序子文件记录数增1) 例如:已有待排序文件为:38,65,49,76,97 首先将文件的第一个记录,视为有序文件,然后从第二个记录开始,直到最后一个记录,依次将他们插入到有序文件的合适位置。 10.2 插入排序 2/. 当待排序文件按关键字非递增有序(逆序)时 ① 记录r[i](i=2,3,...n)均要和前i-1个记录及r[0]进行比较,整个排序过程共进行了 n ∑ i=(n+2)(n-1)/2次比较(最多); i=2 ② 移动记录次数:每个记录都要进行r[i]移动到r[0]和r[0]移动到r[j+1]两次移动,另外当r[i].key<r[j].key时,还将r[j]移动到r[j+1],所以,当初始文件为正序时,移动记录次数最少为2(n-1)次,当初始文件为逆序时移动记录次数最多为 n ∑ (i-1)+2(n-1)=(n+4)(n-1)/2次(最多)。 i=2 10.2 插入排序 ⑶ 结论 1/. 直接插入排序的效率与待排文件的关键字排列有关; 2/. 直接插入排序的时间复杂度为O(n2); 3/. 直接插入排序是稳定的(这一点由过程中WHILE语句的条件“<”保证的)。 PROC strainsort(VAR r:filetype); FOR i:=2 TO n DO [ r[0]:=r[i]; j:=i-1; WHILE r[0].key<r[j].key DO [ r[j+1]:=r[j]; j:=j-1 ]; r[j+1]:=r[0] ] ENDP; {strainsort} 10.2 插入排序 二. 折半插入排序 由于是在有序子文件中确定插入的位置,因此可用折半查找来代替直接插入排序法中的顺序查找,从而可减少比较次数。 10.2

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档