12排序问题与算法的多样性.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文档。上传文档
查看更多
杜川 2019-6-3 北师大版高中数学必修 3 第二章《算法初步》 排序问题和插入排序 排序的定义 折半插入排序 你会从这些书籍中查 阅你想要的东西吗? 为了便于查询,常常需要根据要求将被查寻 的对象按照一定的顺序排列,通常称为 排序。 新来的同学小黄身高 175cm ,在班上是中 等身高,因为做操的需要,体育老师要将 他插到队中,你认为老师应该怎样做? teacher 小黄 象这样在 已经按一定顺序排好的系列( 有序 列 ) 中插入一个数据,我们就叫它 有序列插入 排序。 ? 有序列直接插入排序法 ? 有序列直接插入排序:用有序列直接插入排序算法 完成无序列排序问题,其基本思想非常简单,即反 复使用有序列直接插入排序算法,使有序列的长度 不断增加,一直到完成整个无序列的有序排列为 止. ? ? 一般地,对于一个有序列: a 1 ≤ a 2 ≤ a 3 ≤ … ≤ a n ,欲 将新数据 A 插入到有序列中,形成新的有序列,其做 法是:将数据 A 与原有序列中的数据从右到左依次进 行比较,直到发现某一数据 a i ,使得 a i ≤ A ,把 A 插入 到 a i 的右边;如果数据 A 小于原有序列中的所有数据, 则将 A 插入到原序列的最左边.上面的排序算法通常 称为有序列直接插入排序的算法. 我们在一个已经排好顺序的一系列数中插入一个数据,成 为一个新的系列,且仍按原来的规则排序。 要将 8 插入到 {1,3,5,7,9,11,13} 中, 我们怎样考虑? 确定 8 在原系列中的位置,使 8 小于或等于原系 列中右边的数据,大于或等于左边的数据 将这个位置空出来,将数 据 8 插进去 1 3 5 7 9 11 13 8 例 1 已知有一组系列 {13,27,38,39,43,47,48,51,57,66,74} ,现 要将数据 52 插入到数据中。 数据系列号 1 2 3 4 5 6 7 8 9 10 11 原系列 13 27 38 39 43 47 48 51 57 66 74 (1) 请设计算法,确定 52 在新数据中的位置。 (2) 在确定 52 的序列号后,请将 52 插入系列中 (3) 请用流程图描述这个插入过程的算法 方法 1. 手工插入: ①确定 52 的序号: 9; ②把原序列中 9 ~ 11 号的数据依次向右挪一位,空 出 9 号位置来,并插入 52 ,得到一个新序列。 方法 2. 即从右边最后一位开始,与 52 比较,若比 52 大就右挪,否则插入 52. 有序列插入排序算法的另一种方法 ? 折半插入排序法 ? 请同学们参看 P84. 下段 问题思考 : 对于一组无序的数据 列 {49,38,65,97,76,13,27,49} 如 何完 成排序工作呢 ? ? 请同学们参看 P85 折半插入排序 如果 R[1..i-1] 是一个按关键字有序的有序序 列,则可以 利用折半查找 实现“在 R[1..i-1] 中 查找 R[i] 的 插入位置 ” ,如此实现的插入 排序为 折半插入排序 。 折半插入排序性能分析 ? 1 ) 折半插入排序 所需附加存储空间和 直接插 入排序 相同,从时间上来看,折半插入排序 减少了关键字的比较次数 ,但是 移动次数不 变 。 ? 2 )折半插入排序的时间复杂度为 o(n 2 ) 。 ? 3 )折半插入排序是一个 稳定 的排序方法。 折半插入排序 待排序元素的插入位置 mid mid i 0 1 2 3 4 5 6 7 8 9 10 58 14 36 49 52 80 58 61 23 97 75 L.r low high low low ? 例 2 中国乒乓球女队原有 11 名队员,她们的身高由 小到大分别为 158,159,160,162, 163,165,166,170, 171,172,175( 单位: cm) .现为备战某项比赛,加入一 名优秀队员,这名队员身高 167 cm. 请设计用折半插 入排序法找出该队员在序列中的位置,并用自然语 言描述算法. ? 解析: 由题目可获取以下主要信息: ? ① 11 名队员的身高; ? ②加入一名身高 167 cm 的队

文档评论(0)

wq1987 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档