大O符号是什么意思?

lov*_*arn 1 algorithm big-o

可能重复:
Big O的简单英文解释

我需要弄清楚O(n)以下内容:

f(n) = 10n^2 + 10n + 20
Run Code Online (Sandbox Code Playgroud)

我能想到的只是50,而且我太尴尬了,不知道我是怎么想出来的.

有人可以解释它意味着什么以及我应该如何计算它f(n)

Stu*_*etz 5

Big-O表示法与复杂性分析有关.一个功能是O(g(n)),如果(对于所有除了一些n值)它是上界通过一些常数倍数g(n)作为n趋于无穷大.更正式的:

f(n)O(g(n))当且仅当存在常数n0,并c使得对所有n >= n0,f(n) <= c.g(n)

在这种情况下,f(n) = 10n^2 + 10n + 20,所以f(n)O(n^2),O(n^3),O(n^4),等.严格的上限是O(n^2).

用外行人的话说,这意味着f(n)增长不会比平方更差,因为n趋于无穷大.

有一个相应的Big-Omega表示法,它可以用于类似方式的下界函数.在这种情况下,f(n)也是Omega(n^2):也就是说,它的增长并不比平方增长更n倾向于无穷大.

最后,还有一个Big-Theta符号,其结合了这两种,即当且仅当f(n)O(g(n))f(n)处于Omega(g(n))然后f(n)Theta(g(n)).在这种情况下,f(n)它在Theta(n^2):即,它n倾向于无穷大地完全呈二次方增长.

- >所有这一点的重点是,随着n变大,线性(10n)和常数(20)项基本上变得无关紧要,因为函数的值受二次项的影响更大.< -

  • @Brian:数万亿是"一些价值观".是的,我的硕士学位是数学,你为什么这么问?;-) (3认同)