主定理复习
Posted santiego
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了主定理复习相关的知识,希望对你有一定的参考价值。
主定理复习
符号
\(\Theta\),读西塔,严格等于
\(O\),读殴,上界,贴紧为未知
\(o\),读殴,小于,不贴紧
\(\Omega\),下界,大于等于,贴近未知
\(w\),读同上,下界,大于,不贴紧
假设有递推公式
\(T(n)=aT(\fracnb)+f(n)\)
三种情况:
- 对某个数\(\varepsilon>0\),有\(f(n)=O(n^(log_ba)-\varepsilon)\),则\(T(n)=\Theta(n^log_ba)\)
- 若存在常数\(k\ge0\),有\(f(n)=\Theta(n^log_balog_2^kn)\),则\(T(n)=\Theta(n^log_balog_2^k+1\,n)\)
- 若存在常数\(\varepsilon>0\),有\(f(n)=\Omega(n^log_ba+\varepsilon)\),且对于某个常数\(c<1\)和所有足够大的\(n\)有\(af(\fracnb)\le cf(n)\),则\(T(n)=\Theta(f(n))\)
例子
\(T(n)=9T(\fracn3)+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)+\sqrtn,T(1)=1\)
有\(a=2,b=4,k=0,f(n)=\sqrtn=\Theta(n^log_42log_2^0n)\),所以\(T(n)=\Theta(\sqrtnlog_2n)\)
以上是关于主定理复习的主要内容,如果未能解决你的问题,请参考以下文章