<算法导论>练习4.5

4.5-1

判断一下分别属于哪种情况然后代入公式即可。
a. Θ ( n log ⁡ 4 2 ) = Θ ( n 1 2 ) \Theta(n^{\log_42})=\Theta(n^\frac12) Θ(nlog42)=Θ(n21)
b. Θ ( n log ⁡ 4 2 l g n ) = Θ ( n 1 2 l g n ) \Theta(n^{\log_42}lgn)=\Theta(n^\frac12lgn) Θ(nlog42lgn)=Θ(n21lgn)
c. Θ ( n ) \Theta(n) Θ(n)
d. Θ ( n 2 ) \Theta(n^2) Θ(n2)

4.5-2

题目描述的挺多,实际上只要解出递归式的渐进确界,和Strassen算法时间比较一下就可以了。由4.2-3已知,Strassen算法时间复杂度为 Θ ( n l g 7 ) \Theta(n^{lg7}) Θ(nlg7).
所以只要 log ⁡ 4 a < l g 7 \log4alog4a<lg7即可,a=48

4.5-3

a=1,b=2, f ( n ) = Θ ( n l g 1 ) = Θ ( 1 ) f(n)=\Theta(n^{lg1})=\Theta(1) f(n)=Θ(nlg1)=Θ(1)
代入公式可得 T ( n ) = Θ ( l g n ) T(n)=\Theta(lgn) T(n)=Θ(lgn)

4.5-4
  由题知a=4,b=2, f ( n ) = n 2 l g n f(n)=n^2lgn f(n)=n2lgn,其中f(n)既不渐进小于也不渐进大于 n 2 n^2 n2,所以不能用主方法套公式。
 &emsp习题4.6-2给出了这种形式的一般公式,其解为 Θ ( n 2 lg ⁡ 2 ( n ) ) \Theta(n^2\lg^2(n)) Θ(n2lg2(n)),证明方式和前两节的一样。

你可能感兴趣的:(算法导论,算法)