主定理复习
符号
(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}))
- 若存在常数(kge0),有(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))