목차 일부
1 알고리즘은 중요하다
문제를 이해한다 ... 20
필요하다면 실험해본다 ... 22
구원의 알고리즘 ... 25
또 다른 이야기 ... 26
이 이야기의 교훈 ... 28
참고자료 ... 28
2 알고리즘의 수학
문제 인스턴스의 크기 ... 29
함수의 증가율 ... 32
최고, 평균, 최저 상황에 대한 분...
더보기
목차 전체
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
더보기 닫기