4.5-1
a) a=2,b=4,f(n)=1。 又 nlogba=nlog42=n−−√。由于 f(n)=O(nlog42−ε),其中 ε=1/2。应用主定理 1 得:T(n)=Θ(n−−√)。
b) a=2,b=4,f(n)=n−−√。又 nlogba=nlog42=n−−√。由于 f(n)=Θ(nlog42)。应用主定理 2 得:T(n)=Θ(n−−√lgn)。
c) a=2,b=4,f(n)=n。又 nlogba=nlog42=n−−√。由于 f(n)=Ω(nlog42+ε),其中 ε=1/2。且存在 1/2≤c≤1,af(n/b)=2f(n/4)=n2≤cn,应用主定理 3 得:T(n)=Θ(n)。
d) a=2,b=4,f(n)=n2。又 nlogba=nlog42=n−−√。由于 f(n)=Ω(nlog42+ε),其中 ε=3/2。且存在 1/8≤c≤1,af(n/b)=2f(n/4)=n28≤cn,应用主定理 3 得:T(n)=Θ(n2)。
4.5-2
nlogba=nlog4a,f(n)=n2。
1) 若 a<16,应用主定理 3 有 T(n)=Θ(n2)。快于 Strassen 算法。
2)若 a=16,应用主定理 2 有 T(n)=Θ(n2lgn),快于 Strassen 算法。
3)若 a>16,log4a<lg7⇒a<lg72=49。此时快于 Strassen 算法。
综上,a 最大为 48。
4.5-3
4.5-4
a=4,b=2,f(n)=n2lgn,nlogba=nlog24=n2。由于 f(n)=n2lgn≠O(n2−ϵ)≠Ω(n2+ϵ),因此不可以应用主定理。
应用递归树有:
4.5-5
设有 a=1,b=2,f(n)=n(2−cosn),nlogba=1
设存在 c<1 使得 af(n/b)≤cn即f(n/2)=n2(2−cosn2)≤cn(2−cosn),可以有:
由于 mincos(n/2)=−1,也就是说 c≥3/2。又由于假设 c<1,从而矛盾。
注:4.6节带有星号,题目答案省略。