时间复杂性求解

master定理

  在求解规模较大的问题时,往往将问题分解成小规模问题递归的求解,然后合并成原问题,这就是分治法的思想。在这个过程中可以得到时间复杂度的递推方程,其中最常见的一种就是master定理。
  设常数 k>=1 , m>1 , f(n) 为函数, T(n) 为非负整数,且 T(n)=kT(n/m)+f(n) 则有:
1.若 f(n)=O(nlogmkε),ε>0 ,那么 T(n)=Θ(nlogmk)
2.若 f(n)=O(nlogmk) ,那么 T(n)=Θ(nlogkmlogn)
3.若 f(n)=O(nlogmk+ε),ε>0 ,且对某个常数 c<1 和无限大的n有 kf(n/m)cf(n) T(n)=Θ(f(n))

  上式第一、三条要满足条件 ε>0 ,若不满足条件无法使用此公式,可用其他公式求解。

猜你喜欢

转载自blog.csdn.net/xdguangguang/article/details/78439602