我刚刚学到了一些关于Big O符号的基本内容,我一直想知道为什么N ^ a = O(N ^ b)如果a< = b和为什么log2 N = O(N ^(1/2) ))?
这是否意味着如果函数是N ^ 2,我们可以说它是O(N ^ 2)还是O(N ^ 3)?
我对这些感到困惑。
此外,如果存在类似(2 ^ logN)/(logN)-1 / logN的函数,Big O估计会是什么?
答案 0 :(得分:0)
Big O 是复杂性的上限。它应尽可能紧密,但过大的上限仍然是上限。
因此,如果你有线性复杂度O(N),你也有二次复杂度O(N ^ 2),即使后者是一个弱得多的陈述。
此外,如果存在类似(2 ^ logN)/(logN)-1 / logN的函数,Big O估计会是什么?
- 1/logN
永远不会大于1,因此实际上是常数,可以忽略。
2^logN
是线性的。
将其除以log N
,使其显示在O(N/log n)
。次线性。