2013-06-13 4 views
2

이것은 주어진 코드이지만 O (log (n)) 또는 O (n)인지 여부를 결정할 수 없습니다.O (log (n))과 O (n)의 차이점은 무엇입니까?

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

이 코드는 컴파일 할 수 없습니다. 너 내가 2/= 2라는 뜻이야? – tbsalling

+2

'i/= 2'를 원하셨습니까? – Maroun

+0

숙제처럼 보입니다. 어떻게 그것을 해결하려고 했습니까? –

답변

5

n = 1000이라고 가정합니다.

i = 0까지 몇 번 반복해야합니까?

당신은 그래서 우리는 다음 표거야 2로 나누면 각 시간 :

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

이 도움이 복잡성을 알아낼 하는가를? (힌트 : ~ log (1000)은 무엇이며 O (n)은 무엇을 의미합니까?)

관련 문제