大哦符号

时间:2010-10-06 23:05:14

标签: big-o

如果T(n)是O(n),那么说T(n)是O(n2)是正确的吗?

4 个答案:

答案 0 :(得分:8)

是;因为O(n)是O(n ^ 2)的子集。

答案 1 :(得分:3)

假设

  

T(n)= O(n),n> 0

然后以下两个都是真的

  

T(n)= O(2n)
  T(n)= O(n 2

这是因为2nn 2 的增长速度与普通n一样快或更快。编辑:正如菲利普在评论中正确指出的那样,即使小于1的值也可以是n的乘数,因为常数项可能会被删除(对于n的大值,它们变得微不足道;编辑2:正如奥利所说,根据O的定义,所有常数都是微不足道的。因此以下是也是 true:

  

T(n)= O(0.2n)

事实上,n 2 增长如此之快,你也可以说

  

T(n)= o(n 2

但不是

  

T(n)=Θ(n 2

因为给定的函数提供渐近上界,而不是渐近紧束缚。

答案 2 :(得分:2)

如果你的意思是O(2 * N),那么是O(n)== O(2n)。所用时间是两种情况下输入数据的线性函数

我不同意另一个答案,即O(N)= O(N * N)。确实,O(N)函数将在比O(N * N)更短的时间内完成,但完成时间不是n * n的函数,所以它确实不是真的

我想答案取决于你提出问题的原因

答案 3 :(得分:0)

O也称为Big-Oh是上限。我们可以说存在C,使得对于所有n> N,T(n)< C g(n)。其中C是常数。

因此,除非T(n)中的大系数小于或等于g(n),否则该语句始终有效。