您的位置:首页 > 其它

算法导论第三版习题7.3

2016-02-29 14:44 204 查看

7.3-1

本来将快速排序随机化就是为了让其最坏情况的出现随机化,此时我们关心的就是该算法的期望运行时间。

7.3-2

在最坏的情况下,每次RANDOM取得的都是子数组中最大或最小的元素的下标,每次划分都会出现0和n−10和n-1的两个子数组,所以每层节点都只会调用一次RANDOM,所以T(n)=T(n−1)+Θ(1)=Θ(n)T(n)=T(n-1)+\Theta(1)=\Theta(n)

在最好的情况下,每次RANDOM取得的都刚好是子数组中大小居中的元素的下标,每次划分都会出现⌊n/2⌋\lfloor n/2\rfloor和⌊n/2⌋−1\lfloor n/2 \rfloor - 1两个子数组,所以T(n)=2T(n/2)+Θ(1)=Θ(n)T(n)=2T(n/2)+\Theta(1)=\Theta(n)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: