版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/suncongbo/article/details/83930408
声明:博主写这个博客的理由只是为了缓解心情,大部分的东西都是我手推的,没有验证过,如果有问题敬请指出。
Noip2018day1完挂,非常难受,过来写个博客颓一下,缓解心情
1. 调和级数
调和级数
Hn=∑i=1nin=O(nlogn)
这个怎么证……抱歉蒟蒻真不会……
不过调和级数
∑ni=1in是微积分中
∫1nx1dx的离散模拟。(这话这么说对吗……抱歉蒟蒻非常菜鸡啥都不会)
然后考虑一个推广的情形:
T(n)=∑i=1n(in)k
2.
0<k<1
当
k<1时,我们化简一下式子:仍然考虑转化为积分式,
nk∫1nx−kdx=nk1−k1n1−k=1−k1n=O(n)
例如,数论中经常碰到某算法时间复杂度为
∑i=1nin
, 该复杂度即为
O(n).
但是请注意,当
k接近
1的时候,
O(n)的背后将隐藏着巨大的常数……比如
k=0.99 , 实验表明当
n比较小的时候
k=0.99和
k=1差别并不大,但是理论上来说当
n趋近于
+inf时,前者将收敛于大约
100n, 后者将发散。
3.
k>1
当
k>1时,
nk∫1nx−kdx=O(nk)
因此,
k>1时
kn的影响几乎可以忽略。不过同理
k接近
1时也会有大常数。
好了心情恢复一点了,继续等待明天的GG……