前言
在算法中,經常需要用到一種與調和級數有關的方法求解,在分析該方法的復雜度時,我們會經常得到\(O(\frac{n}{1}+\frac{n}{2}+\ldots+\frac{n}{n})\)的復雜度,然后我們都知道這個式子是等價於\(O(n\log n)\)的。在篩素數、字符串連續重復子串等很多算法中都有用到,用處之廣,性能之優。今天不妨來證明下這個等價式。
\(O(\frac{n}{1}+\frac{n}{2}+\ldots+\frac{n}{n})\)~\(O(n\log n)\)
分析
要證明\(O(\frac{n}{1}+\frac{n}{2}+\ldots+\frac{n}{n})\)~\(O(n\log n)\),只需證\(O(1+\frac{1}{2}+\ldots+\frac{1}{n})\)~\(O(\ln n)\)——式子1.
為了證明式子1,需要證明4個定理:
1. 確界存在定理
2. 單調有界數列必定收斂
3. 數列\(\{(1+\frac{1}{n})^n\}\)單調增加,\(\{(1+\frac{1}{n})^{n+1}\}\)單調減少,兩者收斂於同一極限
4. \(b_n=1+\frac{1}{2}+\ldots+\frac{1}{n}-\ln n\) 收斂
確界存在定理——實數系連續性定理
描述:非空有上界的數集必有上確界;非空有下界的數集必有下確界。
證明:<a href="http://baike.baidu.com/link?url=NojNWL0qcJWW20mxekU1GcfeD1Tp-0-JtF4oyRio7w9Th-ifVdybvf3PaSzmZKXZywk9mCGnlQ9mkPk-NySvn1b_DUqfs-Boez0kGdtwwgN9cgLyW4xYJfHUVGhdiIHQh3hilNBwuRJxARBOsGkqrSpDfuuEwxa56NjmcEgwrlSiddNVOjmmH6WirfboiLNMPo0a06RFoeFRasTvJSUaPa
" target="_blank">百度百科關於確界存在定理
單調有界數列必定收斂
描述:單調遞增且有上界數列必定收斂,單調遞減且有下界數列必定收斂
證明:
不妨設數列\(\{x_n\}\)單調增加且有上界,根據確界存在定理,由\(\{x_n\}\)構成的數集必有上確界\(\beta\),滿足:
(1) \(\forall n\in N^+:x_n\leq \beta;\)
(2) \(\forall \epsilon>0,\exists x_{n_0}:x_{n_0}>\beta-\epsilon。\)
取\(N=n_0\),\(\forall n>N:\beta-\epsilon<x_{n_0}\leq x_n\leq \beta\),因而\(\{x_n-\beta\}<\epsilon\),於是得到\(\lim_{n\rightarrow \infty}x_n=\beta\)
當數列單調遞減且有下界時,同理。
數列\(\{(1+\frac{1}{n})^n\}\)單調增加,\(\{(1+\frac{1}{n})^{n+1}\}\)單調減少,兩者收斂於同一極限
證明:
記\(x_n=\{(1+\frac{1}{n})^n\}\),\(y_n=\{(1+\frac{1}{n})^{n+1}\}\),利用平均不等式\(\sqrt[n]{a_1a_2\ldots a_n}\leq\frac{a_1+a_2+\ldots+a_n}{n}\)得到
\(x_n=\{(1+\frac{1}{n})^n\}\cdot1\leq [\frac{n(1+\frac{1}{n})+1}{n+1}]^{n+1}=x_{n+1}\)
\(\frac{1}{y_n}=(\frac{n}{n+1})^{n+1}\cdot 1\leq[\frac{(n+1)\frac{n}{n+1}+1}{n+2}]^{n+2}=\frac{1}{y_{n+1}}\)
這表示\(\{x_n\}\)單調增加,而\(\{y_n\}\)單調減少。又由於\(2=x_1\leq x_n<y_n\leq y_1=4\),可知數列\(\{x_n\}\),\(\{y_n\}\)都收斂(單調有界數列必收斂)。
因為\(y_n=x_n(1+\frac{1}{n})\),所以它們具有相同的極限。習慣上用字母\(e\)來表示這一極限,即\(\lim_{n\rightarrow\infty}(1+\frac{1}{n})^n=\lim_{n\rightarrow\infty}(1+\frac{1}{n+1})^n=e\)
\(e=2.718\ 281\ 828\ 459\cdots\)是一個無理數。以\(e\)為底的對數稱為自然對數,通常即為\(\ln x(=\log_ex)\)。
\(b_n=1+\frac{1}{2}+\ldots+\frac{1}{n}-\ln n\) 收斂
證明:
由上一定理可知,\((1+\frac{1}{n})^n<e<(1+\frac{1}{n})^{n+1}\),由此得到\(\frac{1}{n+1}<\ln \frac{n+1}{n}<\frac{1}{n}\)。於是有:
\(b_{n+1}-b_n=\frac{1}{n+1}-\ln (n+1)+\ln n=\frac{1}{n+1}-\ln \frac{n+1}{n}<0\)
\(b_n=1+\frac{1}{2}+\frac{1}{3}+\ldots+\frac{1}{n}-\ln n>\ln \frac{2}{1}+\ln \frac{3}{2}+\ln \frac{4}{3}+\ldots+\ln \frac{n+1}{n}-\ln n=\ln (n+1)-\ln n>0\)
這說明數列\(\{b_n\}\)單調減少有下界,從而收斂。(單調有界數列必收斂)
總結
已證明\(O(1+\frac{1}{2}+\ldots+\frac{1}{n})\)~\(O(\ln n)\),因此可知\(O(\frac{n}{1}+\frac{n}{2}+\ldots+\frac{n}{n})\)~\(O(n\log n)\)