- 5
- 0
- 约6.44千字
- 约 45页
- 2016-06-29 发布于湖北
- 举报
算法分析 当n=1时,T(n)=O(1)。 当n1时,将时间T如下分解: 分解:这一步需要常量时间O(1)。 解决子问题:递归求解两个规模为n/2的子问题,所需时间为2T(n/2)。 合并:Merge算法可在O(n)时间内完成。 得到合并排序算法运行时间T(n)的递归形式为: T(n)=2(2(T(n/4)+O(n/2))+O(n) =… =2xT(n/2x)+xO(n) 求得T(n)=nT(1)+nlogn=n+nlogn,即合并排序算法的时间复杂性为O(nlogn)。 工作空间取决于Merge算法 空间复杂性为O(n)。 快速排序 问题: 对n个元素进行排序 算法思想 通过一趟扫描将待排序的元素分割成独立的三个部分:第一个部分中所有元素均不大于基准元素、第二个是基准元素、第三个部分中所有元素均不小于基准元素。 需要再按此方法对第一个部分和第三个部分分别进行排序。 整个排序过程可以递归进行。 快速排序 初始关键字: 49 38 65 97 76 13 27 50 i j x j i 完成一趟排序: ( 27 38 13) 49 (76 97 65 50) 分别进行快速排序: ( 13)
原创力文档

文档评论(0)