Files
2nd/10_Wiki/Topics/Algorithm-Complexity-Big-O.md
T

32 lines
2.2 KiB
Markdown

---
id: BIG-O-001
category: Dev
confidence_score: 1.0
tags: [computer-science, algorithm, complexity, [[Optimization|Optimization]], big-o]
last_reinforced: 2026-04-26
---
# Algorithm Complexity (Big O, 알고리즘 복잡도)
## 📌 한 줄 통찰 (The Karpathy Summary)
> "데이터가 무한히 늘어날 때, 알고리즘이 얼마나 버틸 수 있는지 측정하라" — 입력 데이터의 크기($n$)에 따른 시간적(Time) 및 공간적(Space) 자원 소모량의 증가 추세를 나타내는 수학적 표기법.
## 📖 구조화된 지식 (Synthesized Content)
- **추출된 패턴:** 구체적인 실행 시간 대신 최악의 경우(Worst-case)를 기준으로 알고리즘의 확장성([[Scalability|Scalability]])을 분류하여 효율적인 설계를 돕는 추상화 패턴.
- **주요 복잡도 단계:**
- **$O(1)$:** 상수 시간. 입력 크기와 무관하게 즉시 처리 (예: 배열 인덱스 접근).
- **$O(\log n)$:** 로그 시간. 처리 범위가 절반씩 줄어듦 (예: 이진 탐색).
- **$O(n)$:** 선형 시간. 입력 크기에 비례 (예: 단순 반복문).
- **$O(n \log n)$:** 선형 로그 시간. 효율적인 정렬 알고리즘 (예: Merge Sort, Quick Sort).
- **$O(n^2)$:** 이차 시간. 이중 반복문. 대규모 데이터에서 기하급수적으로 느려짐.
- **$O(2^n)$:** 지수 시간. 매우 위험한 복잡도 (예: 피보나치 재귀).
- **의의:** AI 모델 학습이나 대규모 인덱싱 시 알고리즘 선택의 결정적 기준이 됨.
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 단순히 '빠른' 알고리즘을 찾던 시기에서, 메모리 사용량(Space Complexity)과 캐시 효율성까지 고려하는 다각적 최적화 시대로 진화.
- **정책 변화:** Antigravity 프로젝트는 모든 지식 검색 및 클러스터링 알고리즘 도입 시 최악의 경우 $O(n \log n)$ 이하의 복잡도를 유지하는 것을 원칙으로 함.
## 🔗 지식 연결 (Graph)
- Algorithm, [[Parallel-Computing|Parallel-Computing]], Vector-Database-Selection, [[Optimization|Optimization]]
- **Raw Source:** 10_Wiki/Topics/AI/Algorithm-Complexity-Big-O.md