Recursion-tree Master Method
递归树表达式
T ( n ) = a T ( n / b ) + f ( n ) T(n) = aT(n/b) + f(n) T(n)=aT(n/b)+f(n)
其中, a > = 1 , b > 1 a >= 1, b > 1 a>=1,b>1, f ( n ) f(n) f(n)渐进趋正, 即由渐进分析可知, 存在某个 n 0 > 0 n_0 > 0 n0>0, 使得当 n > n 0 n > n_0 n>n0时, f ( n ) > 0 f(n)>0 f(n)>0.
比较 f ( n ) f(n) f(n)与 n log b a n^{\log_b{a}} nlogba的大小, 可分为三种情况
case 1
f ( n ) = O ( n log b a − ϵ ) f(n) = O(n^{\log_b{a}} - \epsilon) f(n)=O(nlogba−ϵ), for some ϵ > 0 \epsilon > 0 ϵ>0
结论
T ( n ) = Θ ( n log b a ) T(n) = \Theta(n^{\log_b{a}}) T(n)=Θ(nlogba).
case 2
f ( n ) = Θ ( n log b a ⋅ lg k n ) f(n) = \Theta(n^{\log_b{a}} \cdot \lg^{k}n) f(n)=Θ(nlogba⋅lgkn), for some k > = 0 k >= 0 k>=0
结论
T ( n ) = Θ ( n log b a ⋅ lg k + 1 n ) T(n) = \Theta(n^{\log_b{a}} \cdot \lg^{k+1}n) T(n)=Θ(nlogba⋅lgk+1n).
case 3
f
(
n
)
=
Ω
(
n
log
b
a
+
ϵ
)
f(n) = \Omega(n^{\log_b{a}} + \epsilon)
f(n)=Ω(nlogba+ϵ), for some
ϵ
>
0
\epsilon > 0
ϵ>0
a
n
d
and
and
a
f
(
n
/
b
)
<
=
(
1
−
ϵ
′
)
⋅
f
(
n
)
af(n/b) <= (1- \epsilon^{'} ) \cdot f(n)
af(n/b)<=(1−ϵ′)⋅f(n) for some
ϵ
′
>
0
\epsilon^{'} > 0
ϵ′>0
结论
T ( n ) = Θ ( f ( n ) T(n) = \Theta(f(n) T(n)=Θ(f(n).