排序算法课件.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文档。上传文档
查看更多
排序算法 各类经典排序 常见排序算法的实现 ( 一 ) → 插入排序 ? 插入排序是最简单最直观的排序算法 了,它的依据是:遍历到第 N 个元素的时候 前面的 N-1 个元素已经是排序好的了,那么 就查找前面的 N-1 个元素把这第 N 个元素放 在合适的位置,如此下去直到遍历完序列 的元素为止。 算法的复杂度也是简单 的,排序第一个需要 1 的复杂度,排序第二 个需要 2 的复杂度,因此整个的复杂度就是 1 + 2 + 3 + …… + N = O ( N ^ 2 )的复杂 度。 常见排序算法的实现 ( 二 ) → shell 排序 ? shell 排序是对插入排序的一个改装, 它每次排序把序列的元素按照某个增量分 成几个子序列,对这几个子序列进行插入 排序,然后不断缩小增量扩大每个子序列 的元素数量,直到增量为一的时候子序列 就和原先的待排列序列一样了,此时只需 要做少量的比较和移动就可以完成对序列 的排序了。 常见排序算法的实现 ( 三 ) → 堆排序 ? 堆的定义: ? n 个关键字序列 Kl , K2 , … , Kn 称为堆,当且仅当该序列满足如下性质 (简称为堆性质): ? ( 1 ) ki≤K2i 且 ki≤K2i+1 或( 2 ) Ki≥K2i 且 ki≥K2i+1 ( 1≤i≤ ) 若将此序 列所存储的向量 R[1 …… n] 看做是一棵完全二叉树的存储结构,则堆实质上 是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不 小于)其左右孩子(若存在)结点的关键字。 堆的这个性质使得可以迅 速定位在一个序列之中的最小(大)的元素。 堆排序算法的过程如下: 1 )得到当前序列的最小(大)的元素 ? ( 2 )把这个元素和最后一个元素进行交换,这样当前的最小(大)的元素 就放在了序列的最后,而原先的最后一个元素放到了序列的最前面 ? ( 3 )的交换可能会破坏堆序列的性质(注意此时的序列是除去已经放在最 后面的元素),因此需要对序列进行调整,使之满足于上面堆的性质。重复 上面的过程,直到序列调整完毕为止。 常见排序算法的实现 ( 四 ) → 冒泡排序 ? 冒泡排序算法的思想:很简单,每次遍历 完序列都把最大(小)的元素放在最前面, 然后再对剩下的序列从父前面的一个过程, 每次遍历完之后待排序序列就少一个元素, 当待排序序列减小为只有一个元素的时候 排序就结束了。因此,复杂度在最坏的情 况下是 O ( N ^ 2 )。 常见排序算法的实现 ( 五 ) → 快速排序 ? 快速排序的算法思想: 选定一个枢纽元素, 对待排序序列进行分割,分割之后的序列 一个部分小于枢纽元素,一个部分大于枢 纽元素,再对这两个分割好的子序列进行 上述的过程。 常见排序算法的实现 ( 六 ) → 归并排 序 ? 归并排序的算法思想:把待排序序列分 成相同大小的两个部分,依次对这两部分 进行归并排序,完毕之后再按照顺序进行 合并。

文档评论(0)

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

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

1亿VIP精品文档

相关文档