这是我给出的代码,但我无法确定它是O(log(n))还是O(n)。
int i=n;
while (i > 0) {
i/=2;
}
答案 0 :(得分:5)
让我们假设n = 1000
。
在i = 0
之前需要多少次迭代?
每次将它除以2.所以我们将得到下表:
Iteration | i
----------|--------
0 | 1000
1 | 500
2 | 250
... | ...
... | ...
10 | 0 <-- Here we stop
这有助于您找出复杂性吗? (它应该 - 提示:什么是~log(1000)以及O(n)是什么意思?)