首页 > 其他分享 >主定理

主定理

时间:2023-09-14 21:15:54浏览次数:33  
标签:varepsilon frac log 定理 于主 Theta

假设有递推关系式 \(T(n) = aT(\frac n b )+ f(n)\), 其中 \(T(n)\) 为问题规模, \(a\) 为递推的子问题的数量,\(\frac n b\) 为每个子问题的规模(假设每个字问题规模基本一样),\(f(n)\) 为递推以外进行的计算工作。\(a \geq 1,b>1\) 且为常数,\(f(n)\) 为函数,\(T(n)\) 为非负整数。则有以下结果(分类讨论)

  1. 若 \(f(n) = O(n^{\log_b a-\varepsilon})\) ,\(\varepsilon > 0\) ,那么 \(T(n) = \Theta(n^{log_b a})\)。

  2. 若 \(f(n) = \Theta(n^{\log_b a})\) ,\(\varepsilon > 0\) ,那么 \(T(n) = \Theta(n^{log_b a}\log n)\)

  3. 若 \(f(n) = \Omega(n^{\log_b a+\varepsilon})\) ,\(\varepsilon > 0\) ,且对于某个常数 \(c < 1\) 和所有充分大的 \(n\),有 \(af(\frac n b) \leq cf(n)\) ,那么 \(T(n) = \Theta(f(n))\)

人话翻译

  1. 找出 \(a, b\),计算 \(\log _b a\)。

  2. 找到 \(f(n)\) , 找出它的次数 \(k\)。

  3. 比较 \(\log_b a\) 与 \(k\) 。

  • 若 \(\log_b a > k\),则时间主要消耗在递归上,\(T(n) = \Theta(n^{log_b a})\)。

  • 若 \(\log_b a = k\),则时间在递归和递归外的计算上消耗相等,\(T(n) = \Theta(n^{log_b a}\log n)\)。

  • 若 \(\log_b a < k\),则时间主要消耗在递归之外的计算上,\(T(n) = \Theta(f(n))\)。

  • 当 \(f(n) = \Theta (n^{\log_b a}\log^kn)\),其中 \(k \geq 1\) 且为一个常数,则有 \(T(n) = \Theta (n^{\log_b a}\log^{k+1}n)\)

    (感谢 @Estelle_N 的补充)

实践一下

  1. \(a = 2, b = 2, \log_2 2 = 1, k = 1.\log_b a = k\),适用于主定理第二种情况,\(T(n) = \Theta(n^{log_b a}\log n) = \Theta(n\log n)\)。

  2. \(a = 1, b = 2, \log_2 1 = 0, k = 1.\log_b a < k\),适用于主定理第三种情况,\(T(n) = \Theta(f(n)) = \Theta(n)\)。

  3. \(a = 1, b = 2, \log_2 1 = 0, k = 0.\log_b a = k\),适用于主定理第二种情况,\(T(n) = \Theta(n^{log_b a}\log n) = \Theta(\log n)\)。

  4. \(a = 2, b = 2, \log_2 2 = 1, k = 1.5.\log_b a < k\),适用于主定理第三种情况,\(T(n) = \Theta(f(n)) = \Theta(n\sqrt n)\)。

还有一点

  1. $T(n) = 2^n T(\frac n 2) + n^n $

此处不满足主定理,\(a\) 不是常数

  1. \(T(n) = 16T(\frac n 4) + n\)

\(a = 16, b = 4, f(n) = n, \log_b a = 2, 2 > 1\),适用于主定理第一种情况,\(T(n) = \Theta(n^2)\)。

  1. NOIP 2015 T19

某算法的计算时间表示为递推关系式 \(T(n) = T(n - 1) + n\)(\(n \in N^*\) )及 \(T(0)=1\),则该算法的时间复杂度为(\({\color{green}D}\))。

A. \(O(\log n)\)
B. $O(n\log n) $
C. \(O(n)\)
D. \(O(n^2)\)

解析:此处不满足主定理
$ \therefore n + (n - 1) + (n - 2) + ... +1 = \sum\limits_{i = 1}^n i = \frac{(1+n)n}2 $
取最高项次数,复杂度为 \(O(n^2)\)。

  1. 2017 NOIP提高组 T6

若某算法的计算时间表示为递推关系式:

  • \(T(N) = 2T(\dfrac{N}{2}) + N \log N\)

  • \(T(1) = 1\)

    则该算法的时间复杂度为(\({\color{green}C}\))。

A.\(O(N)\)

B.\(O(N \log N)\)

C.\(O(N \log^2 N)\)

D.\(O(N^2)\)

解:

\(\log_ba = 1\)。当 \(k = 1\) 时,

\(\begin{aligned} f(N) &= \Theta (N^{\log_b a}\log^kN)\\ &=\Theta(N\log N) \end{aligned}\)

\(\begin{aligned} T(n) &= \Theta (n^{\log_b a}\log^{k+1}n)\\ &= \Theta(N^{1}\log^{1 + 1} N)\\&=\Theta(N\log^2 N) \end{aligned}\)

(感谢 @5k_sync_closer 的指正)

如有不足之处,恳请斧正。

轻喷

标签:varepsilon,frac,log,定理,于主,Theta
From: https://www.cnblogs.com/Hszzzx/p/master-theorem.html

相关文章

  • Riesz表示定理和Lax-Milgram定理
    本文中设\(H\)是一个\(\Phi\)(\(\Phi=\mathbb{R}\)或\(\mathbb{C}\))上的Hilbert空间.命题1.设\(C\)是\(H\)中的一个闭凸集,\(x\notinC\),则存在唯一的\(x_0\inC\)使得\(\|x-x_0\|=\inf_{y\inC}\|x-y\|\).证明.我们先证存在性.记\(d=\inf_{y\inC}\|x-y\|\),设\(\{x_n\}......
  • §2. 柯西中值定理和不定式极限
    掌握柯西中值定理和洛必达法则,能够熟练运用洛必达法则求不定式的极限。注意罗尔定理,拉格朗日定理和柯西中值定理之间的递进关系与几何意义。重点习题:第3、4、5题。  纪尧姆·弗朗索瓦·安托万·洛必达侯爵(GuillaumeFrançoisAntoine,Marquisdel'Hôpital,1661年-1704年......
  • 矩阵树定理
    一个用来求一张图的生成树个数的方法。基础结论在无向图中,定义一个点的度数为\(d_i\),边\((u,v)\)的数量为\(c_{u,v}\)。在有向图中,定义一个点的入度为\(ind_i\),出度为\(outd_i\),边\(u\tov\)的数量为\(t_{u,v}\)。先把结论扔出来:求无向图生成树:记矩阵\(M=(m_{ij})......
  • LA@相似对角化判定定理和计算方法
    文章目录方阵相似对角化引言相似对角化变换矩阵的性质构造对角化变换矩阵方阵可对角化判定定理......
  • AA@多项式@余式定理@根和一次因式的关系
    文章目录多项式函数余数定理(余式定理)根(零点)重根和单根根与一次因式的关系......
  • 【230905-1】正弦定理之证明
    ......
  • 利用中心极限定理求解圣彼得堡悖论问题的近似曲线
    此文为《概率论》课程小项目。关于圣彼得堡悖论的一些思考记\(N\)为游戏的轮数,则\(N\simGe(\frac{1}{2}),P(N=k)=2^{-k},k=1,2,3,...\)奖金\(X=2^N\),\(E(X)=E(2^N)=\sum_{k=1}^{+\infty}2^k\times2^{-k}=\sum_{k=1}^{+\infty}1=+\infty\)理论上如果能玩无限轮游戏......
  • 行列式、矩阵树定理
    推荐阅读:矩阵树定理(+行列式)-command_block的博客。行列式定义这个东西一般用于求解图的生成树个数(矩阵树定理)。称一个大小为\(n\timesn\)的矩阵\(A\)的行列式为\(\det(A)\)(或\(|A|\))。\[\det(A)=\sum_{p\texttt{是一个大小为n排列}}(-1)^{F(p)}\prod_{i=1}^{n}A......
  • 关于欧几里得算法与裴蜀定理的证明
    前言:因为某次考试订正T4,用到了exCRT,然后发现我和lws不会exgcd……所以来把gcd到exgcd重新学一下,就写了这篇trick。欧几里得算法:求证:\[\gcd(a,b)=\begin{cases}\gcd(b,a\bmodb)&b\ne0\\a&b=0\\\end{cases}\]记:\(a=qb+r\),其中\(q=\lfloor\fracab\r......
  • 线性同余方程+中国剩余定理
    逆元求解\(ax=b\pmodm\),其实等价于\(ax+my=b\),然后扩欧就无了。可以应用于求当是\(a,p\)互质,求\(a\)在模\(p\)意义下的逆元,方法就是求解\(ax=1\pmodp\)。中国剩余定理(CRT)问题:有\(m_1,m_2,...,m_n\),\(n\)个整数两两互质,还给定\(a_1,a_2,...,a_n\),需要我们求解一个方程组:\(......