zoukankan      html  css  js  c++  java
  • 主定理

    (摘自《算法导论》)

    主定理:

        若T(n)由递归式T(n)=aT(n/b)+f(n)对非负整数定义,其中a≥1,b>1为常数,f(n)为一函数,则:

    [T(n) = left{ egin{array}{l}
    Theta ({n^{{{log }_b}a}}),exists varepsilon > 0,f(n) = O({n^{{{log }_b}a - varepsilon }})\
    Theta ({n^{{{log }_b}a}}lg n),f(n) = Theta ({n^{{{log }_b}a}})\
    Theta (f(n)),exists varepsilon > 0,f(n) = Omega {kern 1pt} ({n^{{{log }_b}a + varepsilon }}){kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} and{kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} exists c < 1,{n_0} > 0,for{kern 1pt} {kern 1pt} {kern 1pt} {kern 1pt} n > {n_0},af(n/b) le cf(n)
    end{array} ight.]

    注意: [主定理并不能解决所有形如T(n)=aT(n/b)+f(n)的问题,在第1,3种情况,f(n)必须多项式地小于(大于){n^{{{log }_b}a}},即f(n)和{n^{{{log }_b}a}}之间差{n^varepsilon }以上]

        例如:T(n)=2T(n/2)+nlogn,虽然nlogn=Ω(n),但找不到一个ε满足:

    [f(n) = nlog n = Omega ({n^{{{log }_b}a - varepsilon }}) = Omega ({n^{1 - varepsilon }})]

        也就是说,

    [f(n)/{n^{{{log }_b}a}}{ m{渐进小于}}{n^varepsilon }]

        处于第2和第3种情况之间,此时不能使用主定理.

  • 相关阅读:
    Ionic Js十:加载动作
    Ionic Js九:列表操作
    Ionic Js八:头部和底部
    Ionic Js七:手势事件
    库文件
    驱动知识
    自启动总结
    学习笔记
    写脚本切换用户
    未找到arm-linux-gcc解决办法
  • 原文地址:https://www.cnblogs.com/reasno/p/4897600.html
Copyright © 2011-2022 走看看