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我也是。