主方法是一个算法复杂度分析的一个很好的方法,但是只能用于特定的递归上,适合的递归形式为:
T(n) = a*T(n/b)+f(n)
其中,a >=1 ; b >1 ; f(n) : 非递归函数,f(n)渐进趋正,渐进趋正的意思是当n足够大是,f(n)为正数,记:对于n>=n0时,f(n)>0,其中n0为足够大正数。
判断n^log b (a)与f(n)的大小关系
(1) 如果n^log b (a) = Θ(f(n)),那么该方法的复杂度为 Θ(f(n)*(log b (n)^(k+1))),其中k>=0
(2) 如果n^log b (a) > Θ(f(n)),那么该方法的复杂度为 Θ(n^(log b (a)))
(3) 如果n^log b (a) < Θ(f(n)),那么该方法复杂度为 Θ(f(n))