数据结构_09_排序讲述.ppt

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

桶式排序 基本思想 输入:在[0,1)区间内均匀分布的随机序列 将区间[0,1)划分成一系列桶(等长子区间),如[0, 0.1), [0.1, 0.2), …, [0.9, 1) 对属于桶内的序列分别排序,按桶的编号依次输出 * 0 1 2 3 4 5 6 7 8 9 .72 .78 .12 .17 .21 .23 .26 .39 .68 .94 .78 .17 .39 .26 .72 .94 .21 .12 .23 .68 0 1 2 3 4 5 6 7 8 9 .78 .72 .17 .12 .26 .21 .23 .39 .68 .94 桶式排序 算法分析 整个桶排序时间复杂度为 将元素分配到各个桶中的时间复杂度为O(n) 假设每个桶中序列使用直接插入排序,时间复杂度为O(ni2) 极限情况下,每个桶放一个元素,桶排序最好效率为O(n) * 基数排序 多排序码排序 花色:? ? ? ? ? ? ? 面值:2345678910JQKA 排成以下序列就是多排序码排序 ?2, …, ?A, ?2, …, ?A, ?2, …, ?A, ?2, …, ?A 排序后的有序序列称为字典有序序列 可先按花色排序,再按字母排序 也可先按字母排序,再按花色排序 * 基数排序 多排序码排序 最高位优先(MSD, Most Significant Digit first) 按第1排序码排序,会分成若干组 递归对各组按第2,3,…,d排序码排序 最后把所有子组元素依次连接起来形成有序序列 最低位优先(LSD, Least Significant Digit first) 按第d排序码(最低位)排序 对上一排序结果按第d-1排序码(次低位)排序 对上一排序结果按第d-2排序码排序,以此类推,直到按第1排序码完成排序,可得最终排序结果 * 基数排序 多排序码排序 最高位优先(MSD, Most Significant Digit first) 按第1排序码排序,会分成若干组 递归对各组按第2,3,…,d排序码排序 最后把所有子组元素依次连接起来形成有序序列 * 332 633 059 589 232 664 179 457 825 714 405 361 179 232 332, 361 457, 405 589 633,664 714 825 059 1 2 3 4 5 6 7 8 9 0 332 361 0 1 2 4 3 5 6 7 8 9 457 405 1 2 3 4 6 5 7 0 8 9 633 664 0 1 2 4 3 5 6 7 8 9 基数排序 最低位优先(LSD) 按第d排序码(最低位)排序 对上一排序结果按第d-1排序码(次低位)排序 对上一排序结果按第d-2排序码排序,以此类推,直到按第1排序码完成排序,可得最终排序结果 332 633 589 232 664 179 457 825 405 361 0 1 2 3 4 5 6 7 8 9 361 332 633 589 825 179 664 405 232 457 361 332 232 633 664 825 405 457 589 179 0 1 2 3 4 5 6 7 8 9 361 332 232 633 664 825 405 457 589 179 405 825 332 232 633 457 361 664 179 589 0 1 2 3 4 5 6 7 8 9 405 825 332 232 633 457 361 664 179 589 179 232 332 361 405 457 589 633 664 825 基数排序 算法性能分析 n:记录数,d:排序码数,r:基数 时间复杂度:分配操作:O(n),收集操作O(r),需进行d趟分配和收集。时间复杂度:O(d(n+r)) 空间复杂度:所需辅助空间为队首和队尾指针2r个,此外还有为每个记录增加的链域空间n个。空间复杂度O((n+r)) * 各排序方法时间复杂度比较 * 排序方法 平均情况 最好情况 最坏情况 直接插入排序 O(n2) O(n) O(n2) 希尔排序 O(nlog2n) O(n1.3) O(n2) 起泡排序 O(n2) O (n) O(n2) 快速排序 O(nlog2n) O(nlog2n) O(n2) 直接选择排序 O(n2) O(n2) O(n2) 堆排序 O(nlog2n) O(nlog2n) O (nlog2n) (二路)归并排序 O(nlog2n) O(nlog2n) O(nlog2n) 基数排序 O(d(n+r)) O(d(n+r)) O(d(n+r)) 各排序方法空间和稳定性比较 * 排序方法 辅助空间 稳定性/不稳定举例 直接插入排序 O(1)

文档评论(0)

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

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

1亿VIP精品文档

相关文档