1、主方法使用条件
用主方法求解递归式有条件,必须要求递归式为以下形式:
其中a>=1,b>1,f(n)渐进趋正,意为对足够大的n,f(n)是正的,即n>=
n
0
n_0
n0时,f(n)>0。
其中 n为问题规模, a为递推的子问题数量, n/b 为每个子问题的规模(假设每个子问题的规模基本一样), f(n)为递推以外进行的计算工作。
2、主方法具体使用
**核心是比较f(n)与n^(logba)的大小。**根据大小关系可以分为三种情况:
3、举例
Ex1:T(n)=4T(n/2)+n
这里f(n)=n,
n
(
l
o
g
b
a
)
=
n
2
n^(logba)=n^2
n(logba)=n2,f(n)小于n^(logba),所以为第一种情况,T(n)=θ(
n
2
n^2
n2).
Ex2:T(n)=4T(n/2)+
n
2
n^2
n2
这里f(n)=
n
2
n^2
n2,
n
(
l
o
g
b
a
)
=
n
2
n^(logba)=n^2
n(logba)=n2,f(n)等于n^(logba),所以为第二种情况,T(n)=θ(
n
2
l
g
n
n^2lgn
n2lgn)
Ex3:T(n)=4T(n/2)+
n
3
n^3
n3
这里f(n)=
n
3
n^3
n3,
n
(
l
o
g
b
a
)
=
n
2
n^(logba)=n^2
n(logba)=n2,f(n)大于n^(logba),所以为第三种情况,T(n)=θ(
n
3
n^3
n3)