Algorithm 20
- 의미로 검색하다 — 벡터 검색(ANN·HNSW)과 PageRank, 그리고 시리즈의 끝
- 레이트 리미팅과 스트리밍 알고리즘 — 폭주를 막고, 끝없는 흐름에서 표본을 뽑다
- 합의 알고리즘 — 죽는 서버들 사이에서 하나의 진실을 정하는 법 (Raft·Paxos)
- 일관된 해싱 — 노드가 들고날 때 데이터를 통째로 옮기지 않는 법
- 확률적 자료구조 — 정확함을 메모리와 맞바꾸는 기술 (Bloom·HyperLogLog·Count-Min)
- 문자열 매칭 — 어긋났을 때 얼마나 똑똑하게 다시 시작하는가
- 그리디 — 눈앞의 최선만 집었는데 전체가 최적일 때
- 동적계획법 — 같은 계산을 두 번 하지 않는다는 단 하나의 원칙
- 최소 신장 트리와 Union-Find — 가장 싸게 잇기, 그리고 거의 O(1)의 마법
- 최단 경로 — 다익스트라의 확신, A*의 직감, 벨만-포드의 인내
- 그래프 순회 — BFS의 물결, DFS의 깊이, 그리고 위상정렬
- 이진 탐색 트리와 균형 — 한쪽으로 쏠리는 트리를 회전으로 바로 세우기
- 재귀와 분할정복 — 콜스택에 쌓이는 신뢰, 마스터 정리로 푸는 비용
- 이진 탐색 — 반씩 버리는 마법, 그리고 "답을 이분하라"
- 선형 시간 정렬 — 비교를 버리면 Ω(n log n) 벽이 사라진다
- 비교 정렬 — 퀵·머지·힙, 그리고 Ω(n log n)이라는 넘을 수 없는 벽
- 해시 테이블 — 평균 O(1)의 비밀과 그 평균이 깨지는 순간
- 스택·큐·힙 — 접근 규칙 하나가 만드는 강력함
- 배열과 연결 리스트 — 같은 O(n)인데 왜 한쪽이 수십 배 느린가
- 복잡도 분석 — Big-O, 점근 표기, 그리고 분할상환이라는 거짓말 같은 진실