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?
