zoukankan      html  css  js  c++  java
  • 【学习笔记】与调和级数相关的时间复杂度

    手动博客搬家: 本文发表于20181110 16:13:39, 原地址https://blog.csdn.net/suncongbo/article/details/83930408

    声明:博主写这个博客的理由只是为了缓解心情,大部分的东西都是我手推的,没有验证过,如果有问题敬请指出。

    Noip2018day1完挂,非常难受,过来写个博客颓一下,缓解心情

    1. 调和级数
    调和级数(H_n=sum^{n}_{i=1} frac{n}{i}=O(nlog n))
    这个怎么证……抱歉蒟蒻真不会……感性理解就是(1+frac{1}{2}+frac{1}{4}+frac{1}{4}+frac{1}{8}+frac{1}{8}+frac{1}{8}+frac{1}{8}+...<1+frac{1}{2}+frac{1}{3}+...<1+frac{1}{2}+frac{1}{2}+frac{1}{4}+frac{1}{4}+frac{1}{4}+frac{1}{4}+frac{1}{8}+frac{1}{8}+frac{1}{8}+frac{1}{8}+frac{1}{8}+frac{1}{8}+frac{1}{8}+frac{1}{8}...)
    不过调和级数(sum^{n}_{i=1} frac{n}{i})是微积分中(int^n_{1} frac{1}{x} dx)的离散模拟。(这话这么说对吗……抱歉蒟蒻非常菜鸡啥都不会)

    然后考虑一个推广的情形: (T(n)=sum^{n}_{i=1} (frac{n}{i})^k)

    2. (0<k<1)
    (k<1)时,我们化简一下式子:仍然考虑转化为积分式,(n^kint^{n}_{1} x^{-k} dx=n^kfrac{1}{1-k}n^{1-k}=frac{1}{1-k}n=O(n))
    例如,数论中经常碰到某算法时间复杂度为(sum^{n}_{i=1} sqrt{frac{n}{i}}), 该复杂度即为(O(n)).
    但是请注意,当(k)接近(1)的时候,(O(n))的背后将隐藏着巨大的常数……比如(k=0.99) , 实验表明当(n)比较小的时候(k=0.99)(k=1)差别并不大,但是理论上来说当(n)趋近于(+inf)时,前者和(n)的比值将收敛于大约(100), 后者和(n)的比值将发散。

    3. (k>1)
    (k>1)时, (n^kint_1^n x^{-k} dx=O(n^k))
    因此,(k>1)(frac{n}{k})的影响几乎可以忽略。不过同理(k)接近(1)时也会有大常数。

    好了心情恢复一点了,继续等待明天的GG……

  • 相关阅读:
    如何修炼成某一领域的高手?
    宝宝为什么见生人就哭
    绩效管理
    《管理3.0》读书笔记
    卡特尔16PF性格测试与答案
    管理3.0
    偶感
    Javascript事件总结
    HTML5中与页面显示相关的API
    毕业了五年了--- 人生感想
  • 原文地址:https://www.cnblogs.com/suncongbo/p/10308789.html
Copyright © 2011-2022 走看看