全部评论 8

  • 置顶

    d d d

    昨天 来自 浙江

    0
  • 这他妈不是 O(nlogV)O(nlogV) 吗

    3小时前 来自 广东

    0
  • 注意到只要n不超过 2642^{64} 那么 O(nlog⁡n)O(n\log n) 就优于 O(64n)O(64n) ……
    你要这么说那 O(nlog⁡n)O(n\log n) 直接看成 O(n)O(n) 就行了呗……

    23小时前 来自 吉林

    0
    • 你可以去看分享一个小优化,里面的方法可以用来做快速排序,也是一样的时间复杂度,除了最好情况下,快排是 O(nlog⁡n)O(n\log n) ,快选是 O(n)O(n) ,但最坏一样。
      那你这么说,我的方法时间复杂度是最坏 O(nlog⁡D)O(n\log D) ,其中 DD 为值域。那么当我们排序long long时, log⁡D\log D 就是 6464 ,最坏时间复杂度就是 O(64n)=O(n)O(64n)=O(n) ,而快速排序又是基于比较的排序,也就是说我还顺手打破了基于比较的排序理论最优 O(nlog⁡n)O(n\log n) 的证明呗……

      23小时前 来自 吉林

      0
    • 是的,但是,显然,上面这一坨 O(nlog⁡maxi=1nai)O(n\log max _{i = 1}^{n} a_i),非常吓人,作者只是开个玩笑。。。正常的人在算时间复杂度的时候一般是不干这种事情的,除非像我这种的。。。(大部分人更倾向于用T(...)求吧。。。)

      23小时前 来自 浙江

      0
  • 这他妈不是 O(nlog⁡V)O(n\log V) 吗

    昨天 来自 广东

    0
  • d d d

    昨天 来自 浙江

    0
  • 注意到最优 O(nlog⁡n)\mathcal{O}(n \log n) 是在基于比较排序中的理论最优复杂度,基数排序并不属于基于比较的排序

    昨天 来自 浙江

    0
    • 我说 \log 能看成常熟有没有懂的

      昨天 来自 浙江

      0
    • yes

      昨天 来自 浙江

      0
  • 2

    昨天 来自 浙江

    0
  • O 忽略常数不代表常数不存在了

    昨天 来自 湖北

    0
    • 是的,但是,确实,64也只算小常数,O 不算和算其实没什么大的区别。。。

      昨天 来自 浙江

      0
    • 确实,如果算64,实际复杂度会高1-2倍,但是主要是为了让时间复杂度更好看。。。

      昨天 来自 浙江

      0

热门讨论