




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法设计与分析,谭守标 安徽大学 电子学院 2007.9,第七章 线性时间排序,排序算法的下界 计数排序(过程及分析) 基数排序 桶排序(过程及分析) 程序演示及说明,排序算法的下界,决策树 最坏情况下界 定理9.1 推论9.2,决策树,决策树表示了某种排序算法作用于给定输入上所做的所有比较,而控制结构,数据移动等则被忽略。,最坏情况下界,在决策树中,由根到任一叶节点间最长路径的长度表示了对应的排序算法中最坏情况比较次数。这样, 一个比较排序算法中的最坏情况比较次数就与其决策树的高度对应, 同时关于其决策树高度的下界也就是关于比较排序算法运行时间的下界。,定理9.1,定理:任意一棵对n个元素排序的决策树有高度 (nlgn) 。 证明: 考虑对n个元素排序的, 高度为h的决策树。因为n!种排列, 每种排列代表一种不同的最终排序, 故该树必须至少有n!片叶子。又一颗高度为h的二叉树的叶子数不多于2h, 则: n! 2h 两边取对数, 有: h lg(n!),定理9.1,因为lg函数是单调递增的, 又根据Stirling近似公式, 有: n! (n/e)n 所以, 有: h lg(n/e)n = nlgn nlge = (nlgn),推论9.2,推论: 堆排序和合并排序是渐进最优的比较算法。 证明:堆排序和合并排序的运行时间上界O(nlgn)与定理9.1给出的最坏情况下界 (nlgn)一致。,计数排序(过程及分析),计数排序思路 计数排序算法 计数排序分析,计数排序思路,计数排序假设n个输入中的每一个都是介于1到k之间的整数, 此处k是整数。 计数排序的基本思想就是对每一个元素x,确定出小于x的元素数。有了这个信息就可把x直接放到它在最终输出数组中的位置上。例如有17个元素小于x,则x就属于第18个输出位置。 如果有相等的元素怎么办?,计数排序算法,COUNTING_SORT(A, B, k) 1 for i 1 to k 2 do Ci 0 3 for j 1 to lengthA 4 do CAj CAj+1 5 Ci现在包含等于i的元素个数 6 for i 2 to k 7 do Ci Ci+Ci-1 8 Ci现在包含小于等于i的元素个数 9 for j lengthA downto 1 10 do BCAj Aj 11 CAj CAj-1,计数排序算法,计数排序分析,计数排序的时间分析, 第1-2行的for循环花费的时间为O(k), 第3-4行中for循环所花费时间为O(n),第6-7行的for循环花费的时间为O(k)。这样,总的时间就是O(k+n)。在实践中,当k= O(n)时,我们常常采用计数排序,这时其运行时间为O(n)。,基数排序(过程及分析),基数排序思想 基数排序算法 基数排序分析,基数排序思想,每种数字数据都是一种进位计数制数据,如二进制、十进制等,每一位的取值范围即基数。 基数排序的思想就是在某种进制下对所有数据从低位到高位逐位进行排序,最终就能得到整体排序的结果。,基数排序算法,基数排序算法,RADIX_SORT(A, d) 1 for i 1 to d 2 do 使用一种稳定的排序方法来对 数组A按第i位数字进行排序,基数排序分析,正确性:归纳证明 时间代价: 当每位数字都介于1-k之间,且k不太大时,可以选择计数排序。 每一位上的处理时间为: (n+k) 总时间为: (d(n+k), 当d为常量,k= (n)时, (d(n+k)= (n),基数排序例,以一个计算机字(16位)为基数,一个64位数则为4位数,即d=4, k=216,用基数排序只需4次。,桶排序(过程及分析),桶排序思想 桶排序算法 桶排序分析,桶排序思想,桶排序的思想就是把区间0, 1)划分成n个相同大小的子区间, 或称桶, 然后将n个输入数分布到各个桶中去。如果输入数均匀分布在0, 1)上, 则一般不会有很多数落在一个桶中。为得到结果, 先对各个桶中的数进行排序, 然后按次序把各个桶中的元素列出来即可。,桶排序算法,BUCKET_SORT(A) 1 n lengthA 2 for i 1 to n 3 do 将Ai插入到表B nAi 4 for i 0 to n-1 5 do 用插入排序对表Bi进行排序 6 将表B0, B1, ., Bn-1按顺序合并,桶排序算法,桶排序分析,正确性:反证法 时间代价:,桶排序分析,排序算法稳定性,若待排序的序列中,存在多个具有相同值的元素,经过排序,这些元素的相对次序保持不变,则称该算法是稳定的;若经排序后,元素的相对 次序发生了改变,则称该算法是不稳定的。,常见排序算法的稳定性,堆排序算法 不稳定 快速排序算法 不稳定 归并排序算法 稳
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高校教师资格证之高等教育心理学考试题库附答案
- 2025年高级钳工考试试题及答案
- 2025年高级经济师工商管理真题解析
- 食安培训试题及答案
- 中央会议规范管理办法
- 贷款变更还本管理办法
- 中央集中采购管理办法
- 业务发展管理办法试行
- 专项工作考核管理办法
- 视频监控应用管理办法
- 07J902-3 医疗建筑(卫生间、淋浴间、洗池)
- 2024年网上大学智能云服务交付工程师认证考试题库800题(含答案)
- SJG 110-2022 附建式变电站设计防火标准
- 《中式烹调工艺》课件-热菜烹调工艺
- 中华民族共同体概论课件专家版2第二讲 树立正确的中华民族历史观
- 仓库发错货的解决方案
- 金属冶炼安全事故案例与分析
- 南京市2023-2024高一上学期期末英语试卷及答案
- 输液泵、微量泵技术操作规程及评分标准
- 数字孪生及车间实践第三篇数字孪生车间
- 时间像小马车课件
评论
0/150
提交评论