线性时间的排序ch8

线性时间的排序ch8

ID:34563061

大小:689.62 KB

页数:22页

时间:2019-03-08

线性时间的排序ch8_第1页
线性时间的排序ch8_第2页
线性时间的排序ch8_第3页
线性时间的排序ch8_第4页
线性时间的排序ch8_第5页
资源描述:

《线性时间的排序ch8》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、算法设计与分析算法设计与分析DesignandAnalysisofAlgorithmsDesignandAnalysisofAlgorithmsDesignandAnalysisofAlgorithms主讲人主讲人徐徐云云FallFall2010,2010,USTCUSTCPart1FoundationPart2SortingandOrderStatisticschap6Heapsortchap7Quicksortchap8SortinginLinearTimechap9MediansandOrderStatisticsPart3DataSt

2、ructurePart4AdvancedDesignandAnalysisTechniquesPart5AdvancedDataStructuresPart6GraphAlgorithmsPart7SelectedTopicsPart8Supplement第第88章章线性时间的排序线性时间的排序8.18.1排序的下界排序的下界8.28.2计数排序计数排序8.38.3基数排序基数排序8.48.4桶排序桶排序8.1排序的下界ò判定树模型ò最坏情形的下界2010-10-4算法设计与分析4判定树模型ò任何n个元素a,a,…,a的基于比较的排序可以用一

3、颗二12n叉排序树表示,其叶子节点代表一类输入实例的排序结果。ò示例:a=6,a=8,a=5其判定树如下1231:2≤>2:31:3≤>>≤<1,2,3>1:3<2,1,3>2:3≤>≤><1,3,2><3,1,2><2,3,1><3,2,1>该实例的比较路径由箭头所示,叶子节点代表的是排序结果。2010-10-4算法设计与分析5最坏情形的下界ò定理8.1基于比较排序算法在最坏情形下,需要Ω(nlogn)。ò证明:设h,l分别代表判定树的高度和叶子数∵判定树是一颗二叉树∴l≤2h//叶子数不超过2h∴n!≤l≤2h//n!为排序的结果数于是有

4、,h≥logn!≥Ω(nlogn)证毕!2010-10-4算法设计与分析6第第88章章线性时间的排序线性时间的排序8.18.1排序的下界排序的下界8.28.2计数排序计数排序8.38.3基数排序基数排序8.48.4桶排序桶排序8.2计数排序ò基本思想ò一种特殊情形的计数排序ò一般情形的计数排序2010-10-4算法设计与分析8基本思想ò统计小于或等于A[i]的元素数目,将A[i]置入相应的位置,即A[i]ÆB[小于或等于A[i]的元素数目]ò主要要解决的问题:¾计数:统计小于或等于A[i]的元素数目¾值相同元素的处理2010-10-4算法设计

5、与分析9一种特殊情形的计数排序ò问题:n个互不相同的整数A[1..n],1≤A[i]≤ni=1~nò排序算法:SpecialCountingSort(A,B){//B[1..n]为排序结果fori←1tondoB[A[i]]←A[i];//如A[i]=5,就放到B[5]中}时间:O(n),无比较2010-10-4算法设计与分析10一般情形的计数排序(1)ò问题:n个可以相同的整数A[1..n],1≤A[i]≤k,i=1~n,这里k是A[i]的取值范围,不一定为n。ò基本思想:步骤:A[1..n]→计数器C[1..k]→B[1..n]¾Step

6、1(值相同元素的计数):将A中的值为i的元素个数记入C[i]中;¾Step2(累计计数):对C[1..k]进行修改,使得C[i]的值表示为≤i的元素个数;¾Step3(放置):将A[j]依据C[A[j]],放入正确位置B[C[A[j]]]上,并修改C[A[j]]←C[A[j]]-1;2010-10-4算法设计与分析11一般情形的计数排序(2)ò算法:CountingSort(A,B,k){//B[1..n]为排序结果,C[1..k]为计数数组fori←1tokdoC[i]←0;forj←1tolength[A]do//扫描A,值相同元素计数C

7、[A[j]]++;fori←2tokdo//C[i]修改,累计计数C[i]←C[i]+C[i-1];forj←length[A]downto1do{B[C[A[j]]]←A[j];C[A[j]]--;}}时间:T(n,k)=θ(n+k)=θ(n),如果k=θ(n)时2010-10-4算法设计与分析12第第88章章线性时间的排序线性时间的排序8.18.1排序的下界排序的下界8.28.2计数排序计数排序8.38.3基数排序基数排序8.48.4桶排序桶排序8.3基数排序ò算法ò一些讨论2010-10-4算法设计与分析14基数排序算法ò假定A[1..

8、n]是非负整数,用k进制表示为不超过d位数。ò算法:RadixSort(A,d){fori←1toddo使用稳定的排序算法对A的第i位排序;//如计数排序}ò时间:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。