吉林大学数据结构课件 第七章 排序.pptx

  1. 1、本文档共177页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排 序概 述排序:排序指按规定的顺序排列一个给定对象集合中的诸元素 。文件: 它是待排序数据对象的有限集合。记录:R1,R2,…,Rn关键词域(key): 通常数据对象有多个属性域,即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。该域即为关键词域。每个文件用哪个属性域作为关键词,要视具体的应用需要而定。即使是同一个文件表,在解决不同问题的场合也可能取不同的域做关键码。概 述主关键词: 如果在数据表中各个对象的关键码互不相同,这种关键码即主关键码。按照主关键码进行排序,排序的结果是唯一的。次关键词: 数据表中有些对象的关键码可能相同,这种关键码称为次关键码。按照次关键码进行排序,排序的结果可能不唯一。概 述排序:记录按关键词域递增或递减的顺序排列n个记录相应的关键词:K1,K2,…,Kn在关键词域上定义一个次序关系“” ,使得对于任意三个关键词的取值a、b、c,下列条件成立:在ab,a=b,ba 三个可能性中,有且只有一个可能性成立(三分率);如果ab,并且bc,则有ac(传递性). 这两个性质显示了线性次序的数学性质,也称作全序. 概 述排序:记录按关键词域递增或递减的顺序排列n个记录相应的关键词:K1,K2,…,Kn在关键词域上定义一个次序关系“” ;排序的目标就是寻找一个置换 : 使得诸关键词按照非递减的次序排列,即有 Kρ(1)≤Kρ(2)≤…≤Kρ(n) i123456789Ki070902160805121413ρ(i)351942687Kρ(i)020507080912131416 排序的时间开销: 排序的时间开销是衡量算法好坏的最重要的标志。排序的时间开销可用算法执行中关键词的比较次数与数据的移动次数来衡量。各节给出算法运行期望时间代价是对按平均情况进行估算。对于那些受对象关键词序列初始排列及对象个数影响较大的,需要按最好情况和最坏情况进行估算。算法执行时所需的附加存储空间: 评价算法好坏的另一标准。排序算法的稳定性:当Kρ(i)=Kρ(j)并且ij时,总有ρ(i)ρ(j),这里1≤i,j≤n,则我们就称该排序过程具有稳定性. 排序的时间开销(时间复杂性)算法执行时所需的附加存储空间(空间复杂性)排序算法的稳定性算法基本思想 插入排序,交换排序,选择排序,合并排序算法适用条件 分类: 内排序和外排序 升序和降序 存储: 数组和链表 7.1 插入排序插入排序思想: 将一个记录插入到已排好序的有序表中,从而 得到一个新的、记录数加一的有序表。  (9 15 23 28 37) 20 (9 15 ?? 23 28 37) 20 有序序列R[1..j-1]R[j]无序序列 R[j+1..n]排序方法:R1,R2,…,Rn–1, Rn.第一步:R1;第二步: R1 , R2 第三步: (R1 , R2), R3… …第j步: ( R1,R2,…,Rj–1), Rj;… …第n步: ( R1,R2,…,Rn–1),Rn.关键问题:如何找到插入位置???( R1,R2,…,Rj–1)Rj直接插入排序直接插入排序思想:从后向前依次和每个记录比较,找到插入位置。有序序列R[1..j-1]R[j]无序序列 R[j+1..n]i 直接插入排序的算法算法InsertSort ( R,n ) /* 本算法排列n个记录,使得它们相应的关键词排列成一个非递减的序列 */IS1 [逐一排序] FOR j=2 TO n DO (i←j–1.// 每次循环Rj插入到R1,…,Rj–1中 K←Kj . R←Rj . WHILE i>0 AND K<Ki DO ? ( Ri+1←Ri . ? i←i–l ) . ? Ri+1←R ) ▌492525*252116j = 2081 2 3 4 5 6temp各趟排序结果492525*2116081 2 3 4 5 6i←j–1. K←Kj . R←Rj. //i=1,K=25,R=R2WHILE i>0 AND K<Ki DO ? ( Ri+1←Ri .i←i–l ) . ?Ri+1←R492525*252116j = 2081 2 3 4 5 6tem2116j = 3081 2 3 4 5 6temp各趟排序结果492525*2116081 2 3 4 5

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档