有什么区别或分开O(log(n))和O(n)?

时间:2013-06-13 06:41:49

标签: java big-o

这是我给出的代码,但我无法确定它是O(log(n))还是O(n)。

int i=n;
while (i > 0) {  
   i/=2;  
}     

1 个答案:

答案 0 :(得分:5)

让我们假设n = 1000

i = 0之前需要多少次迭代?

每次将它除以2.所以我们将得到下表:

Iteration |   i
----------|--------
    0     |  1000
    1     |  500
    2     |  250
   ...    |  ...
   ...    |  ...
    10    |   0  <-- Here we stop

这有助于您找出复杂性吗? (它应该 - 提示:什么是~log(1000)以及O(n)是什么意思?)