zoukankan      html  css  js  c++  java
  • 主定理计算递归式的复杂度

    符号 Notation

    渐进符号 Asymptotic Notation

    渐进符号 非渐进符号 含义
    \(f(n) = O(g(n))\) \(f(n) \le cg(n)\) g是f的上界
    \(f(n) = o(g(n))\) \(f(n) \lt cg(n)\) g是f的严格上界
    \(f(n) = \Omega(g(n))\) \(f(n) \ge cg(n)\) g是f的下界
    \(f(n) = \omega(g(n))\) \(f(n) \gt cg(n)\) g是f的严格下界
    \(f(n) = \Theta(g(n))\) \(c_1g(n) \le f(n) \le c_2g(n)\) g是f的确界

    问题规范化

    \[T(n) = aT(n/b) + f(n) \]

    规模为n的问题,可分为a个规模为n/b的子问题,每个子问题可通过f(n)的事件解决。

    主定理

    主定理通过递归树导出,主要思想是:

    比较\(n^{\log_ba}\)\(f(n)\)的渐进大小关系,谁大谁决定复杂度\(T(n)。\)

    第一种情况:\(n^{\log_ba} = \omega(f(n))\)\(T(n) = \Theta(n^{\log_b a})\)

    例:\(T(n) = 9T(n/3) + n\)

    \(n^{\log_ba} = n^{\log_39} = n^2 = \omega(n)\)

    \(T(n) = \Theta(n^2)\)

    第二种情况:\(n^{\log_b a} = o(f(n))\)\(T(n) = \Theta(f(n))\)

    应用该公式,还要必须满足:

    存在实数c,且\(c \lt 1\)时,有\(af(n/b) \le cf(n)\)

    例:\(T(n) = 3T(n/4) + n\log_2n\)

    \(n^{\log_ba} = n^{\log_43} \approx n^{0.792} = o(n\log_2n)\)

    且由\(\frac 34n\log_2{\frac n4} \le cn\log_2n\),可得\(\frac 34 \lt c \lt 1\)

    \(T(n) = \Theta(n\log_2n)\)

    第三种情况:\(n^{\log_b a} = \Theta(f(n))\)\(T(n) = \Theta(n^{\log_ba}\log_2n)\)

    例:\(T(n) = T(3n/4) + 1\)

    \(n^{\log_ba} = n^{\log_{\frac 4 3} 1} = n^0 = \Theta(1)\)

    \(T(n) = \Theta(\log_2n)\)

    注意

    主定理为未包含所有递归式情况,有以下情况不被包含:

    • 不满足第二种情况情况中的附加条件。
    • 非渐进关系可比,如

    \[T(n) = 2T(n/2) + n\log_2n \]

    \(n^{\log_ba} = n^{\log_22} = n \not = o(n\log_2n)\)

  • 相关阅读:
    动态规划之最大子序和(53)
    退出系统
    请维护容差码的容差限制-OMR6
    SAP561该物料不可能有库存记帐
    虚拟机锁定文件失败,disk启动失败
    该物料不可能有库存记账
    其他收货入库
    有关业务 事件类型wa 在 的号码范围不存在
    给供应商付款
    T169V表目:不存在
  • 原文地址:https://www.cnblogs.com/sequix/p/8558534.html
Copyright © 2011-2022 走看看