이론 개념 정리

시간 복잡도

빅오 표기법 (Big-O Notation)

시간 복잡도 의미
$O(1)$ 상수 시간 (constant time) 좋음
$O(logN)$ 로그 시간 (log time)
$O(N)$ 선형 시간 (linear time)
$O(NlogN)$ 로그 선형 시간 (log-linear time)
$O(N^2)$ 이차 시간 (quadratic time)
$O(N^3)$ 삼차 시간 (cubic time)
$O(2^N)$ 지수 시간 (exponential time) 나쁨

시간복잡도 예시

  1. $O(N)$
let arr = [1, 2, 3, 4, 5];
let sum = 0;

for (let i = 0; i < arr.length; i++) {
	sum += arr[i];
}

console.log(sum);
  1. $O(N^2)$
let arr = [1, 2, 3, 4, 5];

for (let i = 0; i < arr.length; i++) {
	for (let j = 0; j < arr.length; j++) {
		let temp = arr[i] * arr[j];
		console.log(temp);
	}
}