O符号是什么意思?
可能重复:
Big O的纯英文解释
我需要弄清以下的O(n)
:
f(n) = 10n^2 + 10n + 20
我所能想到的只有50
,而且我很尴尬地说出我是怎么想出来的。
有人可以解释它是什么意思,我应该如何计算f(n)
以上?
Big-O符号用于复杂性分析。 一个函数是O(g(n))
如果(除了一些n
值之外的所有数值)它是由g(n)
的某个常数倍数上界的,因为n
趋于无穷大。 更正式地说:
f(n)
是在O(g(n))
当且仅当存在常数n0
和c
使得对于所有n >= n0
, f(n) <= cg(n)
在这种情况下, f(n) = 10n^2 + 10n + 20
,所以f(n)
在O(n^2)
, O(n^3)
, O(n^4)
等等中。边界是O(n^2)
。
用外行人的话来说,这意味着当n
趋于无穷大时, f(n)
不会比二次方增加更差。
有一个相应的Big-Omega符号,可以用类似的方式用于下界函数。 在这种情况下, f(n)
也是Omega(n^2)
:也就是说,当n
倾向于无穷大时,它的增长并不比二次方好。
最后,有一个Big-Theta
符号结合了这两个,即iff f(n)
在O(g(n))
和f(n)
在Omega(g(n))
那么f(n)
在Theta(g(n))
。 在这种情况下, f(n)
在Theta(n^2)
:也就是说,当n
趋于无穷大时,它正好以二次方式增长。
- >这一切的关键是,当n
变大时,线性( 10n
)和常数( 20
)项变得基本上不相关,因为函数的值受二次项的影响更大。 < -
上一篇: O notation mean?