시간복잡도

Untitled

입력값으로 들어올 수 있는 데이터의 최대값을 참고하여 알고리즘이 수용할 수 있는 Big-O를 판단할 수 있다.

대부분의 문제는 실행시간 1초(1억번의 연산)에 가깝게 디자인된다.

Untitled

예를 들어, 입력값의 크기가 100이라면 굳이 O(n)이나 O(logn)까지 최적화를 시키지 않더라도 O(n2)O(n3)으로 충분히 알고리즘을 구현할 수 있다.

Quiz

아래 코드의 시간복잡도는?

for (let i = 0; i < n; i++) {
	i *= k;
}

O(logn) 또는 O(logk(n)

k배수만큼 i가 커지며 n에 도달하고 있기 때문에 logk(n)이지만 log base는 big O notation에서 중요하지 않으므로 logn으로 표현 가능하다.