我是否正确地执行了这个大O符号?

时间:2015-09-14 14:42:47

标签: big-o

这是一项家庭作业,我只是被负号抛出一点点。

  

以big-O表示法表达以下内容。尽可能使用最严格的界限。例如,n5在技术上是O(n1000),但这并不像O(n5)那么紧。

     

n 2 -500n-2

  • n 2 - 500 n - 2
  • < = n 2 - 500 n
  • 所有n的
  • < = n 2 > 0
  • 是O(n 2

2 个答案:

答案 0 :(得分:1)

O(n^2)是正确的。负号不应该打扰你。是的,如果是n = 10,那么它就是一个负数,但如果n足够大会怎么样?

E.g。请参阅以下两个图表:link - n^2对于足够大的n总是大于n^2-500n-2

答案 1 :(得分:1)

对于Big O表示法,您需要记住的是,它只对某些数字x 0 以及所有数字高于此值。如果有一些数字f(x)= O(g(x))和一些实数x 0 ,那么M如果x接近无穷大,那么|f(x)| <= M|g(x)|对于所有x&gt; = x 0 (Source for equations, wikipedia)

基本上,我们只需要考虑x的大值,你可以选择一个任意大的值。实际上如此之大n^2将使500n的减法蒙上阴影。如果我选择M为2且x 0 为100000000000000000,则更具技术性。然后上述等式成立。我很懒,并且选择了一个非常大的x 0 但这个等式让我。对于等于2的M,x 0 的值会小得多,但同样重要的是,它无关紧要。

最后,您对O(n^2)的回答是正确的