Big O表示法 - O(nlog(n))vs O(log(n ^ 2))

时间:2017-04-02 22:31:57

标签: algorithm big-o

NLog(N)的符号是否与Log(N ^ 2)相同?如果是这样,为什么它不是那样写的?

NLog(N)是标准符号吗?我觉得Log(N ^ 2)不那么令人困惑。

3 个答案:

答案 0 :(得分:7)

  • O(log(n^2)) 只是O(2 log(n)) = O(log(n))。它是一个对数函数。它的值比线性函数O(n) 小得多

  • O(n log(n)) 是一个更大的功能。它的值比线性函数O(n)

  • 更大

它们是完全不同的功能(以及不同的大O复杂性)。 O(n log(n))远大于O(log(n^2))

此图显示了差异: enter image description here

答案 1 :(得分:3)

添加对数与乘法数相同,因此log(n * n)变为log(n)+ log(n)= 2 log(n)。

n log(n)接近线性。第一个n是重要部分,因为其余部分增长相当缓慢。

例如,合并排序具有n log n时间复杂度,因为如果您将合并视为树,则树是log(n)级别高,并且在每个级别上处理所有n个元素。

答案 2 :(得分:0)

Nlog(N)= log(N ^ N)所以没有,并且由log(N ^ 2)= 2log(N)以上的zerkms指出