目录
递归方程
递归方程
解递归方程的方法
- 递归树(Recursion tree)
- 替代法(Substitution method)
- Master方法(Master method)
递归树
递归树实例1
解 T ( n ) = 2 T ( n 2 ) + c n T(n) = 2T(\frac{n}{2}) + cn T(n)=2T(2n)+cn, 其中 c > 0 为常数,且 n = 2 h n=2^h n=2h
当 n ≠ 2 h n\neq2^h n=2h时,即满足 2 h < n < 2 h + 1 2^h<n<2^{h+1} 2h<n<2h+1,则 n = Θ ( 2 h ) n=Θ(2^h) n=Θ(2h), h = Θ ( l o g n ) h=Θ(logn) h=Θ(logn)
所以 T ( 2 h ) ≤ T ( n ) ≤ T ( 2 h + 1 ) T(2^h)≤ T(n) ≤ T(2^{h+1}) T(2h)≤T(n)≤T(2h+1)
所以 Θ ( h 2 h ) ≤ T ( n ) ≤ Θ ( ( h + 1 ) 2 h + 1 ) Θ(h2^h)≤T(n)≤Θ((h+1)2^{h+1}) Θ(h2h)≤T(n)≤Θ((h+1)2h+1)
而 Θ ( ( h + 1 ) 2 h + 1 ) = Θ ( h 2 h + 1 + 2 h + 1 ) = Θ ( h 2 h + 1 ) = Θ ( h 2 h ) Θ((h+1)2^{h+1})=Θ(h2^{h+1}+2^{h+1})=Θ(h2^{h+1})=Θ(h2^h) Θ((h+1)2h+1)=Θ(h2h+1+2h+1)=Θ(h2h+1)=Θ(h2h)
所以 Θ ( h 2 h ) ≤ T ( n ) ≤ Θ ( h 2 h ) Θ(h2^h)≤T(n)≤Θ(h2^{h}) Θ(h2h)≤T(n)≤Θ(h2h),即 T ( n ) = Θ ( h 2 h ) = Θ ( n l o g n ) T(n)=Θ(h2^h)=Θ(nlogn) T(n)=Θ(h2h)=Θ(nlogn)
综上所述,T(n) = 2T(n/2) + cn的解始终为 T ( n ) = Θ ( n l o g n ) T(n)=Θ(nlogn) T(n)=Θ(nlogn)
递归树等价于迭代展开
解 T ( n ) = 2 T ( n 2 ) + c n T(n) = 2T(\frac{n}{2}) + cn T(n)=2T(2n)+cn, 其中 c > 0 为常数,且 n = 2 h n=2^h n=2h
T ( n ) = 2 T ( n 2 ) + c n T(n)=2T(\frac{n}{2})+cn T(n)=2T(2n)+cn
= 2 ( 2 T ( n 4 ) ) + c ( n 2 ) ) + c n = 2 2 T ( n 4 ) + c n + c n =2(2T(\frac{n}{4}))+c(\frac{n}{2}))+cn=2^2T(\frac{n}{4})+cn+cn =2(2T(4n))+c(2n))+cn=22T(<