算法分析--关于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\)
占坑待填.

posted @ 2021-01-11 11:24  _dwt  阅读(121)  评论(0)    收藏  举报