文章目录
- 递归式求解时间复杂度-主方法例题
-
- (1) T ( n ) = 2 T ( n / 4 ) + 1 T(n)=2T(n/4)+1 T(n)=2T(n/4)+1
- (2) T ( n ) = 2 T ( n / 4 ) + n T(n)=2T(n/4)+\sqrt{n} T(n)=2T(n/4)+n
- (3) T ( n ) = 2 T ( n / 4 ) + n T(n)=2T(n/4)+n T(n)=2T(n/4)+n
- (4) T ( n ) = 2 T ( n / 4 ) + n 2 T(n)=2T(n/4)+n^2 T(n)=2T(n/4)+n2
- (6) T ( n ) = 7 T ( n / 2 ) + Θ ( n 2 ) T(n)=7T(n/2)+\Theta(n^2) T(n)=7T(n/2)+Θ(n2)
- 解题关键
递归式求解时间复杂度-主方法例题
(1) T ( n ) = 2 T ( n / 4 ) + 1 T(n)=2T(n/4)+1 T(n)=2T(n/4)+1
解:因为 a = 2 , b = 4 , f ( n ) = 1 a=2, b=4, f(n)=1 a=2,b=4,f(n)=1,且 n log b a = n log 4 2 = n 1 2 n^{\log_b a}=n^{\log_4 2}=n^{\frac{1}{2}} nlogba=nlog42=n21,
所以,令 ϵ = 1 2 \epsilon = \frac{1}{2} ϵ=21,得到 f ( n ) = 1 = n 1 2 − ϵ f(n)=1=n^{\frac{1}{2}-\epsilon} f(n)=1=n21−ϵ
所以, f ( n ) = O ( n 1 2 − ϵ ) f(n)=O(n^{\frac{1}{2}-\epsilon}) f(n)=O(n21−ϵ),根据主定理情况1,可知
T ( n ) = Θ ( n 1 2 ) T(n)=\Theta(n^{\frac{1}{2}}) T(n)=Θ(n21)
(2) T ( n ) = 2 T ( n / 4 ) + n T(n)=2T(n/4)+\sqrt{n} T(n)=2T(n/4)+n
解:因为 a = 2 , b = 4 , f ( n ) = n a=2, b=4, f(n)=\sqrt{n} a=