这段代码的大 O 复杂度是多少

What is the big-O complexity of this code

这段代码的大 O 表示法是什么?

for( int i=1; i<2n; i++)
   x=x+1;

我的回答=O(2*n)这个正确吗?

复杂度为O(n)。 Big O 旨在描述应用程序的复杂性,在这种情况下它是线性的,所以它是 O(n)。

像你猜的那样,这个的大 运行 时间是 O(2n),但通常只是简化为 O(n)。

将此视为一个 A 算法

for( int i=1; i<2*n; i++)
 x=x+1;

算法A的运行时间:T(n) = 2n-1

  1. 消除低阶项:2n-1 -> 2n
  2. 删除所有常数系数:2n -> n

所以算法A的时间复杂度为O(n).