算法分析--关于Devide and Conquer 型分析的两个定理.
\(1. Smoothness\ Rule\)
\(只研究\mathbb{N}上单调不降非负的函数f(n).\)
\(Def:\)
\(f\) is smooth, if \(f(2n) \in \Theta(f(n))\)
\(logn, n, nlogn, n^\alpha(\alpha>0)\)均为smooth.
\(Lemma\ 1\)
If \(f\) is smooth, then \(\forall b\geqslant 2, f(bn)\in\Theta(f(n))\)
\(proof:\)
\[由smooth的定义,\\
\exists c_1, c_2>0, n_0>0,\forall n\geqslant n_0, c_1f(n)\leqslant f(2n)\leqslant c_2f(n) \\
则有:\\
c_1^kf(n)\leqslant f(2^kn)\leqslant c_2^kf(n) \\
证明简单数归~: \\
Induction\ base\ (k=1时) 是trivial的 \\
Generally, \ c_1^{k-1}f(n)\leqslant f(2^{k-1}n)\leqslant c_2^{k-1}f(n) ,由smooth, \\c_1c_1^{k-1}f(n)\leqslant f(2(2^{k-1})n)\leqslant c_2c_2^{k-1}f(n)\\
即c_1^kf(n)\leqslant f(2^kn)\leqslant c_2^kf(n) ,for\ k=1,2,3...\\
取2^{k-1}<b \leqslant 2^{k}, 则:\\
c_1^{k-1}f(n)\leqslant f(2^{k-1}n)\leqslant f(bn)\leqslant f(2^{k}n)\leqslant c_2^k f(n)\\
i.e.\ f(bn) \in \ \Theta(f(n))
\]
\(Theorem\ 1\ :\ Smoothness\ Rule\)
\(T(n)是\mathbb{N}上的不降非负函数, f是smooth的, 若对一切k,b^k\geqslant b^k_0=n_0, 有T(b^k)\in \Theta(f(b^k)),则:\\
T(n)\in\Theta (f(n))\)
\(proof:\)(只证\(O\), 要证\(\Omega\)同理)
或者理解为: \(\Theta\)是一种对称关系,(其实是等价关系)
\[b^k\geqslant b^k_0=n_0, 有T(b^k)\in O(f(b^k)) ,and\ f\ is\ smooth\\
\exists c>0, s.t. \ T(b^k)\leqslant cf(b^k)\\
\forall n\in(b^k,b^{k+1}], T(n)\leqslant T(b^{k+1})\leqslant cf(b^{k+1}) \leqslant cc_bf(b^k)\leqslant cc_bf(n)\ 第3个\leqslant用lemma1 \\
i.e. T(n) \in O(f(n))
\]
有了这条性质,我们可以假设递归方程 \(T(n)=a(T(\frac{n}{b}))+f(n)中的n=b^k\), 从而简化分析.
以后补充\(Master \ Theorem\)
占坑待填.