《算法导论》:主定理
主定理:
令 a>=1 且 b>1 是常数,f(n) 是一个函数,T(n) 是定义在非负整数上的递归式:
T(n) = a*T(n/b) + f(n)
其中我们将 n/b 解释为 floor(n/b) 或 ceiling(n/b)。那么 T(n) 有如下渐近界:
- 若对某个常数 ε > 0 ,有 f(n) = O(nlogb(a-ε))(注:其中b是log函数的底,a-ε是log函数的真数),则 T(n) = Θ(nlogb(a))。
- 若 f(n) = Θ(nlogb(a)),则 T(n) = Θ(nlogb(a))。
- 若对某个常数 ε > 0,有 f(n) = Ω(nlogb(a+ε)),且对某个常数 c<1 和所有足够大的 n 有 af(n/b) <= cf(n),则 T(n) = Θ(f(n))。