--- id: BIG-O-001 category: Unified 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