算法导论(第三版)参考答案:练习4.4-1,练习4.4-2,练习4.4-3,练习4.4-4,练习4.4-5,练习4.4-6,练习4.4-7,练习4.4-8,练习4.4-9
Exercise 4.4-1
Use a reccursion tree to determine a good asymptotic upper bound on the recurrence T(n)=3T(⌊n/2⌋)+n . Use the substitution method to verify your answer.
假设 n 是2的幂(忍受不精确),则递归树为
注:请看更正版,一个更好的渐进紧确界。
树高
T(n)=n+(32)n+(32)2n+⋯+(32)lgn−1n+Θ(nlg3)=∑i=0lgn−1(32)in+Θ(nlg3)=n(3/2)lgn−1(3/2)−1+Θ(nlg3)<n(3/2+1/2)lgn−1(3/2)−1+Θ(nlg3)<nn−1(3/2)−1+Θ(nlg3)=O(n2)
代入法证明 T(n)≤cn2+2n :
T(n)≤3c(n/2)2+2⋅n/2+n=34cn2+2n≤cn2+2n
O(n2) 为 T(n) 的一个渐进上界。
更正:
T(n)=n+(32)n+(32)2n+⋯+(32)lgn−1n+Θ(nlg3)=∑i=0lgn−1(32)in+Θ(nlg3)=n(3/2)lgn−1(3/2)−1+Θ(nlg3)=2n(3lgnn−1)+Θ(nlg3)=2⋅3lgn−2n+Θ(nlg3)=O(nlg(3))
代入法证明 T(n)≤cnlg3+2n :
T(n)≤3c(n/2)lg3+2⋅n/2+n=cnlg3+2n=O(nlg3)