时间复杂性求解

来源:互联网 发布:运营商的云计算项目 编辑:程序博客网 时间:2024/06/09 13:51

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,若不满足条件无法使用此公式,可用其他公式求解。