목차
머리말 = 3
제01장 알고리즘과 문제 해결 = 9
1.1 알고리즘이란? = 10
1.2 알고리즘 기술 언어 = 12
1.3 알고리즘 성능 분석 = 20
1.3.1 공간 복잡도 = 20
1.3.2 시간 복잡도 = 21
1.4 순환과 점화 관계 = 27
1.5 C 프로그램의 컴파일 = 32
1.5.1 Visual C++를 사용한 컴파일 = 32
1.5.2 gcc를 사용한 컴파일 = 38
연습문제 = 40
제02장 정렬 알고리즘 = 43
2.1 개요 = 44
2.2 기초적인 정렬 알고리즘 = 47
2.2.1 선택 정렬 = 47
2.2.2 버블 정렬 = 52
2.2.3 삽입 정렬 = 56
2.2.4 쉘 정렬 = 62
2.3 퀵 정렬 = 68
2.3.1 기본 알고리즘 = 68
2.3.2 순환 제거 = 74
2.3.3 작은 부분화일 = 76
2.3.4 중간 값 분할 = 78
2.4 합병 정렬 = 81
2.5 히프 정렬 = 87
2.6 분포에 의한 정렬 = 95
2.6.1 계수 정렬 = 95
2.6.2 기수 정렬 = 98
2.7 외부 정렬 = 104
2.7.1 균형적 다방향 합병 정렬 = 105
2.7.2 대치 선택 = 106
2.7.3 다단계 합병 정렬 = 109
연습문제 = 112
제03장 탐색 알고리즘 = 119
3.1 개요 = 120
3.2 기초적인 탐색 알고리즘 = 121
3.2.1 순차 탐색 = 121
3.2.2 이진 탐색 = 124
3.2.3 이진 트리 탐색 = 128
3.3 균형 트리 = 132
3.3.1 2-3-4 트리 = 132
3.3.2 레드-블랙 트리 = 137
3.4 해싱 = 147
3.4.1 연쇄법 = 148
3.4.2 선형 탐사법 = 149
3.4.3 이중 해싱 = 153
3.5 기수 탐색 = 159
3.5.1 디지털 탐색 트리 = 159
3.5.2 기수 탐색 트라이 = 164
3.5.3 패트리샤 트리 = 170
3.6 외부 탐색 = 176
3.6.1 인덱스된 순차 접근 = 176
3.6.2 B-트리 = 178
연습문제 = 182
제04장 스트링 처리 알고리즘 = 185
4.1 스트링 탐색 알고리즘 = 186
4.1.1 직선적 알고리즘 = 186
4.1.2 KMP 알고리즘 = 190
4.1.3 보이어-무어 알고리즘 = 198
4.1.4 라빈-카프 알고리즘 = 203
4.2 패턴 매칭 알고리즘 = 208
4.3 화일 압축 알고리즘 = 215
4.3.1 런-길이 인코딩 = 215
4.3.2 가변-길이 인코딩 = 216
4.4 암호화 알고리즘 = 226
4.4.1 단순한 기법 = 227
4.4.2 공개 키 암호화 시스템 = 228
연습문제 = 232
제05장 기하 알고리즘 = 237
5.1 기본 개념 = 238
5.2 기초적인 알고리즘 = 241
5.2.1 선분의 교차 검사 = 241
5.2.2 단순 폐쇄 경로 = 248
5.2.3 다각형 포함 여부 검사 = 252
5.3 볼록 껍질 찾기 = 258
5.3.1 짐꾸리기 알고리즘 = 259
5.3.2 그라함 스캔 알고리즘 = 264
5.3.3 내부 제거 = 270
5.4 최근접 점쌍 찾기 = 272
5.5 범위 탐색 = 283
5.5.1 1차원 범위 탐색 = 283
5.5.2 기초적인 알고리즘 = 286
5.5.3 격자 기법 = 288
5.5.4 2차원 트리 = 292
5.6 기하학적 교차 = 299
연습문제 = 309
제06장 동적 계획법 = 313
6.1 기본 개념 = 314
6.2 행렬의 연쇄적 곱셈 = 318
6.3 최적 이진 탐색 트리 = 324
6.4 스트링 편집 거리 = 332
연습문제 = 337
부록 A ⅳ 편집기 사용법 = 339
부록 B gcc 및 gdb 사용법 = 343
부록 C 기초 수학 = 347
찾아보기 = 361