证明 O(n/1+n/2+…+n/n)=O(nlogn)

前言

在算法中,经常需要用到一种与调和级数有关的方法求解,在分析该方法的复杂度时,我们会经常得到$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 \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)$

以后可能会附上用此公式的算法题目$\ldots$(待续)

你可能感兴趣的:(log)