您的位置:首页 > 其它

算法导论第三版习题7.2

2016-02-29 14:16 267 查看

7.2-1

令Θ(n)=cn\Theta(n)=cn,带入递归式可得:

T(n)=T(n−1)+Θ(n)=T(n−1)+cn=c∑i=1ni=c⋅n(n+1)2=Θ(n2)T(n)=T(n-1)+\Theta(n)=T(n-1)+cn=c\sum_{i=1}^ni=c\cdot \frac{n(n+1)}{2}=\Theta(n^2)

7.2-2

当数组A的所有元素都具有相同值时,此时出现最坏情况,每次划分会出现大小为0和n−10和n-1的子数组,此时时间复杂度为Θ(n2)\Theta(n^2)。

7.2-3

当数组A的所有元素不同,且按降序排列时,那么每次PARTITION操作都会划分出大小为0和n−10和n-1的两个子数组,出现的是最坏的情况,此时QUICKSORT的时间复杂度为Θ(n2)\Theta(n^2)。

7.2-4

假设序列中倒序对有dd对,那么插入排序的时间复杂度为Θ(n+d)\Theta(n+d)。由于该序列几乎为有序序列,所以dd非常小,插入排序时间复杂度接近Θ(n)\Theta(n);而用QUICKSORT时,因为序列几乎有序,所以会经常出现空子数组,所以QUICKSORT性能会很不好,时间复杂度接近Θ(n2)\Theta(n^2)

7.2-5

当子数组大小小于或等于1的时候为叶子节点,显然最小深度为不等式nax≤1na^x\le 1的解:

nax≤1ax≤1nx≥lga1n=−lgn/lga
na^x\le 1\\
a^x\le \frac{1}{n}\\
x \ge lg_a\frac{1}{n}=-lgn/lga\\

所以最小深度为−lgn/lga-lgn/lga。

同理,最大深度为不等式n(1−a)x≤1n(1-a)^x\le 1的解,为−lgn/lg(1−a)-lgn/lg(1-a)。

7.2-6

显然,要产生1−a:a1-a:a划分,则该子数组的最后一个数必须为该数组的第n(1−a)n(1-a)大的数;而要产生比1−a:a1-a:a更好的划分,则数组最后一个数必须是na≤x≤n(1−a)na\le x \le n(1-a),因为输入随机,最后一个数在数组中的大小次序概率相等,所以产生比1−a:a1-a:a更好的划分的概率为n(1−a)−nan=1−2a\frac{n(1-a)-na}{n}=1-2a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: