数据结构课件CD第10章内部排序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章 内部排序 数据结构 主讲教师:周时阳   《数据结构》是计算机科学与技术类各专业的一门基础课。 本章主要介绍数据结构课程研究的问题背景、研究内容和范围。讨论了数据结构和算法的基本概念以及算法的评价。   关于线性结构、树型结构和图型结构等3类基本结构,将在后续各章陆续展开讨论它们的逻辑结构、逻辑结构上定义的运算、物理结构、逻辑结构与物理结构对应关系、运算的实现算法与效率分析。 内容摘要 重点讲解 10.1 概论 10.2 插入排序 10.3 快速排序 10.4 选择排序 10.5 归并排序 10.6 基数排序 10.7 内部排序方法的比较 小结 目录 10.1 概论 “排序”是基于数据逻辑结构(D,R)定义的一种十分常见的运算。数学上,“排序” 是指依据D中的每个数据元素之关键字,按照递增(或递减)顺序将数据元素排列的过程。即: 假设 D={a1, a2, …, ai, …, an}初始序列为 (a1, a2, …, ai, …, an) 其对应的关键字序列为 (k1, k2, …, ki, …, kn) 关键字的递增序列为 (kp1, kp2, …, kpi, …, kpn) 则 (a1, a2, …, ai, …, an)排序结果为 (ap1, ap2, …, api, …, apn) 如果排序算法,对于次关键字排序后,确保相同的次关键字与排序前的相对前后次序不变,则称该算法是稳定的,否则称该算法是不稳定的。即: 假设D的初始序列为 (…, ai , … , aj , …) 其对应的关键字序列为 (…, ki , …, kj , …) 且ki=kj ,关键字的递增序列为 (…, ki , kj , …) 则 D的排序结果为 (…, ai , aj , … ) 标识多个(1)数据元素的分量,称为次关键字。 “排序”运算的一般描述形式为:sort(T,fkey,up_dn),即根据给定关键字分量,按照up_dn指定的不减序或不增序,对T进行排序。 10.2.1  直接插入排序 10.2 插入排序 基本原理: 在递增(递减)有序表L上,插入一个元素x,使其仍然保持有序。 ≤ … 基本步骤: ⑴ 确定插入位置; ⑵ 移动元素; ⑶ 填入新元素。 基本步骤: ⑴ 边确定插入位置,边移动元素; ⑵ 填入新元素。 x “哨兵技术” 目录 算法思想: 从表L=(a1, a2, a3, … , ai, … , an )的第2个元素 a2 开始,直到最后一个元素an 为止, 逐个插入本元素之左边的有序子表, 使其仍然保持有序。 ( ) 49 38 65 97 76 13 27 49 38 49 38 ( ) 65 97 76 13 27 49 65 49 38 65 ( ) 65 97 76 13 27 49 97 49 38 65 97 ( ) 76 13 27 49 97 49 38 65 76 97 76 49 ( ) 13 27 49 49 38 65 13 97 76 97 76 65 38 13 ( ) 27 49 49 27 76 65 97 38 13 97 76 65 49 38 27 ( ) 49 49 97 13 97 76 65 49 38 27 76 65 49 最好情况:正序 最差情况:反序 算法时间复杂度T(n)=O(n2) 10.2.2  其它插入排序 ⒈ 折半插入排序 算法思想: “定位”除了上述顺序定位法外,还可以利用有序子表特点,采用折半定位法。 当定位结束(即LH)时,aL ~ ai-1向后移动。 ak≤x x< ak 算法时间复杂度T(n)=O(n2) ⒉ 2路插入排序 (将关键字排序在辅助空间中) 算法思想: ⑴ 取出表 L=(a1, a2, a3, … , ai, … , an ) 的第1个元素 a1 存入辅助空间D[1]; ⑵ 取出表L的下一个元素 ai ,如果ai<D[1],则插入到D[1]之左边的有序子表,否则插入到D[1]之右边的有序子表; ⑶ 重复⑵,直到表L的最后一个元素an插入后为止。 算法分析:

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档