콘텐츠로 바로가기

Big-O Complexity Analysis

알고리즘의 입력 크기(n)에 따른 자원(시간·공간) 소비량을 점근적으로 분석하는 표기법. 재귀 깊이는 스택 프레임으로 공간 소비:

sys.entry
M

Me

hyunyoun's Blog

data-structures-algorithms1 min read

Big-O Complexity Analysis

알고리즘의 입력 크기(n)에 따른 자원(시간·공간) 소비량을 점근적으로 분석하는 표기법.

계층 구조

CODE
O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!)
상수    로그        선형    선형로그       이차      지수      팩토리얼

O(1): 해시 테이블 조회, 배열 인덱스 접근
O(log n): 이진 탐색, 균형 BST 연산
O(n log n): Merge Sort, Heap Sort (최적 비교 정렬)
O(n²): 버블/선택/삽입 정렬, 중첩 반복문

분석 방법

최악(Worst): 표준 기준. 어떤 입력에서도 이 이상 걸리지 않음을 보장.
평균(Average): 입력 분포 가정 필요. QuickSort 평균 O(n log n).
최선(Best): 실용적 의미 적음. 이미 정렬된 삽입 정렬 O(n).

공간 복잡도

재귀 깊이는 스택 프레임으로 공간 소비:

CODE
DFS on tree → O(h)  # h = 트리 높이
MergeSort   → O(n)  # 임시 배열
QuickSort   → O(log n) 평균 (in-place 재귀 스택)

연결 노트