Book

코딩 인터뷰 완전분석 | 6. Big-O 알아보기

앤오엔 2024. 5. 2. 03:26

VI. Big-O

시간 복잡도

점근적 실행 시간 (asymptotic runtime), big-O

얼마나 시간이 소요되는지를 나타냄

 

O(big-O)

시간의 최대 상한

ex. x <100 인 경우, x <10000도 옳은 표현. 시간 복잡도를 O(N),  O(N^2) 으로도 작성할 수 있음

Ω(big-Omega)

등가 개념이나 하한 선

ϴ(big theta)

O와 Ω 모두, 딱 맞는 수행시간

 

최선의 경우 / 최악의 경우 / 평균의 경우

보통 최악과 평균이 같을 수도 있는데 알고리즘에서는 최악과 평균을 동시에 고려함

 

공간 복잡도

메모라(공간)을 사용하는 정도

 

표현 방식

상수항은 무시 ex. O(2N) => O(N)

지배적이지 않은 항(최고차항이 아닌 항)은 무시 ex. O(N+log N) => O(N)

 

수행 시간 계산

A 작업 후에 B 작업 수행 => A + B 수행시간

A 작업 할 때마다 B 작업도 수행 => A * B 수행시간

 

원소의 개수가 절반씩 줄어든면 수행 시간 O(log N)

로그의 밑은 상수 처리, 지수의 밑은 무시 X

재귀 함수 수행 시간 O(분기^깊이)

*분기: 재귀 함수가 재호출되는 횟수, 깊이: 호출된 함수 갯수