Big-O表示法中函数f(n)= n的上界是什么?为什么?

时间:2015-08-06 15:20:59

标签: algorithm big-o

我正在阅读Karumanchi所着的算法。在其中一个例子中,给出了函数f(n)= n,大o符号是O(n ^ 2)。但为什么是这样,为什么不是&# 39;它是O(n),其中c = 2且n0 = 1。

2 个答案:

答案 0 :(得分:3)

f(n)= O(g(n))设定函数f(n)的上限。但这个上限不必紧张。 所以对于函数f(n)= n,我们可以说f(n)= O(n), 也f(n)= O(n ^ 2),f(n)=(n ^ 3)等等。 Big-Oh的定义并没有说明绑定的紧张程度。

答案 1 :(得分:0)

让我们首先确定我们了解Karumanchi所说的话。首先,在第61页,他指出big-O符号"给出给定函数的上限。" (他的重点)。因此,如果O(n)是正确的,那么O(n ^ 2)的定义是不正确的。

然后,在第62页,我们得到你引用的例子。他通过声明所有n> = 1的n< = n ^ 2来证明O(n ^ 2)是正确的。这是真的。

但是,对于所有n> 1,n <= 2n = 1(OP&#39; s常数。)这证明了语句n = O(n),其中c = 2且n0 = 1。

那他为什么说它是O(n ^ 2)?谁知道?这本书错了。