컴퓨터 과학(CS)
Big-O 표기법
kchs0529
2025. 4. 8. 15:41
🧮 Big-O 표기법이란?
Big-O 표기법은 알고리즘의 시간 또는 공간 복잡도를 수학적으로 분석하기 위해 사용하는 표기법이다. 주로 입력 크기 n이 매우 커질 때, 알고리즘의 실행 시간이 어떻게 증가하는지를 설명한다.
✅ 핵심 개념
- 입력 크기 n이 커질수록 알고리즘의 실행 시간이 어떻게 증가하는지를 나타냄
- 실제 수행 시간보다 성장률(growth rate) 에 집중
- 정확한 연산 횟수 대신, 가장 빠르게 증가하는 항만 남기고, 상수는 무시
📌 Big-O 계산 예시
예시 1: n(n-1)/2
T(n) = n(n-1)/2 = (n^2 - n)/2
- 가장 높은 차수인 n^2만 남기고, 상수와 낮은 차수는 무시
- ⇒ O(n²)
예시 2: 3n + 100
- 상수 제거 → 3n
- 상수 계수 제거 → n
- ⇒ O(n)
💡 왜 사용하는가?
- 서로 다른 알고리즘을 비교할 수 있다
- 하드웨어나 환경에 따라 달라지는 실행 시간을 일반화된 수학적 표현으로 설명할 수 있다
- 효율적인 알고리즘 선택에 도움이 된다
📊 자주 등장하는 Big-O
표기법 의미
O(1) | 입력 크기와 무관 (상수 시간) |
O(log n) | 로그 시간 (이진 탐색 등) |
O(n) | 선형 시간 |
O(n log n) | 병합 정렬, 퀵 정렬 평균 |
O(n²) | 버블 정렬, 선택 정렬, 삽입 정렬 등 |
O(2ⁿ), O(n!) | 매우 느린 알고리즘 |
📝 정리
- Big-O는 알고리즘의 성능을 간단하고 직관적으로 표현하기 위한 수학적 도구이다.
- 계산 횟수가 많아질수록 실제 시간보다 증가 속도에 집중한다.
- 효율적인 코드를 작성하고, 다양한 알고리즘을 비교할 수 있는 기준이 된다.