码迷,mamicode.com
首页 > 其他好文 > 详细

主定理复习

时间:2019-10-06 21:00:40      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:rac   个数   假设   递推公式   ilo   存在   log   情况   noip   

主定理复习

符号

\(\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)\)

主定理复习

标签:rac   个数   假设   递推公式   ilo   存在   log   情况   noip   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!