我对大 O 符号和规则感到困惑
I am confused about Big O notation and the rules
我刚刚学习了一些关于大 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 估计是多少?
Big O 是复杂度的上限。它应该尽可能紧密,但过大的上限仍然是上限。
因此,如果线性复杂度为 O(N),则二次复杂度也为 O(N^2),尽管后者是一个弱得多的陈述。
Also, if there is a function like (2^logN)/(logN)-1/logN, what would the Big O estimate be?
- 1/logN
永远不会大于 1,因此实际上是常量,可以忽略。
2^logN
是线性的。
除以 log N
得到 O(N/log n)
。次线性。
我刚刚学习了一些关于大 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 估计是多少?
Big O 是复杂度的上限。它应该尽可能紧密,但过大的上限仍然是上限。
因此,如果线性复杂度为 O(N),则二次复杂度也为 O(N^2),尽管后者是一个弱得多的陈述。
Also, if there is a function like (2^logN)/(logN)-1/logN, what would the Big O estimate be?
- 1/logN
永远不会大于 1,因此实际上是常量,可以忽略。
2^logN
是线性的。
除以 log N
得到 O(N/log n)
。次线性。