证明 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<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)\)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值