首页 > 其他 > 详细

主定理复习

时间:2019-10-06 19:51:01      阅读:70      评论:0      收藏:0      [点我收藏+]

主定理复习

符号

\(\Theta\),读西塔,严格等于
\(O\),读殴,上界,贴紧为未知
\(o\),读殴,小于,不贴紧
\(\Omega\),下界,大于等于,贴近未知
\(w\),读同上,下界,大于,不贴紧

假设有递推公式
\(T(n)=aT(\frac{n}{b})+f(n)\)

三种情况:

  • 对某个数\(\varepsilon>0\),有\(f(n)=O(n^{(log_ba)-\varepsilon})\),则\(T(n)=\Theta(n^{log_ba})\)
  • 若存在常数\(k\ge0\),有\(f(n)=\Theta(n^{log_ba}log_2^kn)\),则\(T(n)=\Theta(n^{log_ba}log_2^{k+1}\,n)\)
  • 若存在常数\(\varepsilon>0\),有\(f(n)=\Omega(n^{log_ba+\varepsilon})\),且对于某个常数\(c<1\)和所有足够大的\(n\)\(af(\frac{n}{b})\le cf(n)\),则\(T(n)=\Theta(f(n))\)

例子

\(T(n)=9T(\frac{n}{3})+n\)
\(a=9,b=3,f(n)=n\),因为有\(\varepsilon =1, f(n)=n=O(n^{log_39-1})\),满足情况1,所以\(T(n)=\Theta(n^2)\)

[NOIP2017初赛] \(T(n)=2T(n/2)+nlogn,T(1)=1\)
\(a=2,b=2,k=1,f(n)=\Theta(nlogn)\),所以\(T(n)=\Theta(nlog_2^2n)\)

[NOIP2016初赛] \(T(n)=2T(n/4)+\sqrt{n},T(1)=1\)
\(a=2,b=4,k=0,f(n)=\sqrt{n}=\Theta(n^{log_42}log_2^0n)\),所以\(T(n)=\Theta(\sqrt{n}log_2n)\)

主定理复习

原文:https://www.cnblogs.com/santiego/p/11628098.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!