목차
1 알고리즘은 중요하다
   문제를 이해한다 ... 20
   필요하다면 실험해본다 ... 22
   구원의 알고리즘 ... 25
   또 다른 이야기 ... 26
   이 이야기의 교훈 ... 28
   참고자료 ... 28
2 알고리즘의 수학
   문제 인스턴스의 크기 ... 29
   함수의 증가율 ... 32
   최고, 평균, 최저 상황에 대한 분석 ... 37
   성능 계열 ... 41
   연산의 혼합 ... 55
   성능측정 연산 ... 56
   마지막 한 가지 ... 59
   참고자료 ... 59
3 패턴과 도메인
   패턴: 의사전달을 위한 언어 ... 62
   알고리즘 패턴의 형식 ... 63
   의사코드 패턴 형식 ... 65
   설계 형식 ... 66
   실험 평가 형식 ... 68
   도메인과 알고리즘 ... 69
   부동소수점 계산 ... 70
   수동 메모리 할당 ... 74
   프로그램 언어의 선택 ... 77
   참고자료 ... 78
4 정렬 알고리즘
   개요 ... 81
   삽입 정렬 ... 88
   중앙값 정렬 ... 93
   빠른정렬 ... 106
   선택 정렬 ... 114
   힙 정렬 ... 115
   계수 정렬 ... 120
   버킷 정렬 ... 123
   정렬 알고리즘의 선택 기준 ... 129
   참고자료 ... 134
5 검색
   개요 ... 135
   순차 검색 ... 136
   이진 검색 ... 143
   해시 기반 검색 ... 148
   이진 트리 검색 ... 163
   참고자료 ... 171
6 그래프 알고리즘
   개요 ... 173
   깊이 - 우선 검색 ... 181
   너비 - 우선 검색 ... 188
   단일 출발지 최단 거리 ... 192
   모든 쌍 최단 경로 ... 205
   최소 신장 트리 알고리즘 ... 210
   참고자료 ... 213
7 인공지능으로 경로 찾기
   개요 ... 215
   게임 트리 ... 216
   검색 트리 ... 219
   깊이 - 우선 검색 ... 225
   너비 - 우선 검색 ... 235
   A* 검색 ... 240
   미니맥스 ... 255
   네그맥스 ... 261
   알파베타 ... 265
   참고자료 ... 272
8 네트워크 흐름 알고리즘
   개요 ... 275
   최대 흐름 ... 278
   이분 맞춤 ... 290
   여유 경로에 대한 고찰 ... 293
   최소 비용 흐름 ... 298
   옮겨싣기 ... 299
   수송 ... 300
   할당 ... 301
   선형 계획법 ... 301
   참고자료 ... 303
9 계산 기하학
   개요 ... 305
   볼록 껍질 스캔 ... 315
   라인스위프 ... 324
   최근접 이웃 질의 ... 336
   범위 질의 ... 348
   참고자료 ... 355
10 모든 방법이 실패할 때
   가정의 변화 ... 357
   근사 알고리즘 ... 358
   오프라인 알고리즘 ... 358
   병렬 알고리즘 ... 359
   무작위 알고리즘 ... 359
   아주 가끔 틀릴 수도 있는 알고리즘 ... 368
   참고자료 ... 372
11 후기
   개요 ... 373
   원칙: 자료를 이해한다 ... 373
   원칙: 작은 문제로 나눈다 ... 374
   원칙: 적합한 자료구조를 선택한다 ... 375
   원칙: 성능을 높이려면 저장공간을 추가한다 ... 376
   원칙: 확실한 해결책이 없다면, 검색을 구성해본다 ... 377
   원칙: 확실한 해결책이 없다면, 해결책이 있는 다른 문제로 환원한다 ... 378
   원칙: 알고리즘을 작성하는 건 어렵다 - 알고리즘을 시험하는 건 더 어렵다 ... 379
부록 성능측정
   통계의 기초 ... 381
   하드웨어 ... 383
   예에 관하여 ... 383
찾아보기 ... 396
닫기