Java 简单while循环的时间复杂度

Java 简单while循环的时间复杂度,java,swift,while-loop,time-complexity,Java,Swift,While Loop,Time Complexity,我对这段代码的时间复杂性感到困惑 int a = 1; while ( a < n ) { a = a * 2; } inta=1; while(a

我对这段代码的时间复杂性感到困惑

int a = 1;

while ( a < n ) {
  a = a * 2;
}
inta=1;
while(a
我不熟悉时间的复杂性

它是对数(n)。如果
n
为4,则循环执行2次。 如果
n
为8,则循环执行3次。 如果
n
为16,则循环执行4次


这是对数关系,不是线性关系

如果您检查
a
可以得到的值,您将看到:

1, 2, 4, 8, 16, 32, ..., 
迭代将继续,直到
a
小于
n
, 这意味着迭代次数受
⌈log2(n)⌉


因此,你可以得出结论,时间复杂度在
n

中是对数的。那么,你有什么困惑吗?只是想确定它是
o(n)
我认为它是log n。好吧,我不认为这个问题是链接的问题的重复one@abc我也是。