可以3n³+ 4n-5 == O(n²)?

时间:2015-09-28 12:08:21

标签: algorithm big-o time-complexity code-analysis

我可以将C值更改为3n³+ 4n-5 == O(n²)为真吗?
例如:

3n³+ 4n-5 <=3000n²+4000n²==7000n²

C = 7000

3 个答案:

答案 0 :(得分:9)

不,你不能。 C必须是一个不依赖于n的常数。如果你的n足够大,那么对于任何预先确定的C,你总是会更高。

答案 1 :(得分:5)

F(X)= O(G(X));意味着存在一个常数C,使得 -

  

| F(X)|&LT; = C | G(X)|对于所有非常大的x值。

因此,在等式3n³+ 4n-5 == O(n²)中,您将找不到任何常数,使得|3n³+ 4n-5 |&lt; = C。|n²|。因此,这种情况是不可能的。但是你会发现常数c使得|3n³+ 4n-5 |&lt; = C。|n³|。所以

3n³+4n-5==O(n³)  is possible.

答案 2 :(得分:3)

定义是f(x)属于O(g(x))当且仅当限制limsupx → ∞ (f(x)/g(x))存在时,即不是无穷大。简而言之,这意味着存在常数M,因此f(x)/g(x)的值永远不会大于M。让我们为您的函数尝试此操作:f(x)/g(x)= (3n³+4n-5)/n²。为简单起见,您可以认为此函数的增长速度与3n³/n²=3n大致相同。我认为这个功能很明显不受任何常数的限制。因此,无论你选择什么常数(3n³+4n-5)/n²总是会比它更大,因为这个函数无限增长。