zoukankan      html  css  js  c++  java
  • 算法分析基础——主定理

    对于形为T(n) = aT(n / b) + f(n)的递推方程,我们有如下结论:

    主定理(MasterTheorem) 设a≥1,b>1 为常数,f(n)为函数,n为非负整数,且 T(n) = aT(n / b) + f(n),则有以下结果:

    1. 若存在ε>0,使得f(n) = O(nlogba-ε),则T(n) = Θ(nlogba)
    2. 若f(n) = Θ(nlogba),则T(n) = Θ(nlogbalogn)
    3. 若存在ε>0,使得f(n) = Ω(nlogba+ε),并且对于某个常数c<1和所有充分大的n,有af(n / b)≤cf(n),则T(n) = Θ(f(n))

    证明:详见教材(推导过程略复杂,不想写了qwq)。

    由主定理可以直接得到下述推论:

    推论1 依主定理条件,递推方程为T(n)= aT(n / b) + c,则

    1. 当a≠1时,T(n) = Θ(nlogba)
    2. 当a=1时,T(n) = Θ(logn)

    推论2 依主定理条件,递推方程为T(n) = aT(n / b) + cn,则

    1. 当a>b时,T(n) = Θ(nlogba)
    2. 当a=b时,T(n) = Θ(nlogn)
    3. 当a<b时,T(n) = Θ(n)

     例 根据主定理及其推论,我们可以直接得到二分检索算法的平均时间复杂度为Θ(logn),而二分归并排序的平均时间复杂度为Θ(nlogn)。

  • 相关阅读:
    SiteMap Editor for Microsoft Dynamics CRM 2011 使用说明
    Microsoft Dynamics CRM 2011 如何导入组织
    SQL server 2008数据库的备份与还原(转)
    css列表
    css栅格
    css-排版
    类的操作
    事件的委派
    正则验证手机号和电子邮件
    div跟随鼠标移动
  • 原文地址:https://www.cnblogs.com/Jeffrey-Y/p/10307913.html
Copyright © 2011-2022 走看看