목차
Chapter 01 알고리즘과 문제 해결 = 1
1.1 알고리즘이란? = 2
1.2 알고리즘 기술 언어 = 4
1.3 알고리즘 성능 분석 = 11
1.3.1 공간 복잡도 = 12
1.3.2 시간 복잡도 = 13
1.4 순환과 점화 관계 = 18
연습문제 = 22
Chapter 02 C++ 언어 기초 = 23
2.1 객체 지향 개념 및 설계 = 24
2.2 C++ 프로그램의 컴파일 = 28
2.2.1 Visual C++를 사용한 컴파일 = 28
2.2.2 g++를 사용한 컴파일 = 34
2.3 C++ 프로그램의 예 = 36
연습문제 = 50
Chapter 03 정렬 알고리즘 = 51
3.1 개요 = 52
3.2 기초적인 정렬 알고리즘 = 54
3.2.1 선택 정렬 = 54
3.2.2 버블 정렬 = 60
3.2.3 삽입 정렬 = 63
3.2.4 쉘 정렬 = 69
3.3 퀵 정렬 = 74
3.3.1 기본 알고리즘 = 74
3.3.2 순환 제거 = 80
3.3.3 작은 부분화일 = 83
3.3.4 중간 값 분할 = 85
3.4 합병 정렬 = 86
3.5 히프 정렬 = 91
3.6 분포에 의한 정렬 = 99
3.6.1 계수 정렬 = 99
3.6.2 기수 정렬 = 102
3.7 외부 정렬 = 108
3.7.1 균형적 다방향 합병 정렬 = 109
3.7.2 대치 선택 = 110
3.7.3 다단계 합병 정렬 = 112
연습문제 = 115
Chapter 04 탐색 알고리즘 = 121
4.1 개요 = 122
4.2 기초적인 탐색 알고리즘 = 122
4.2.1 순차 탐색 = 123
4.2.2 이진 탐색 = 126
4.2.3 이진 트리 탐색 = 130
4.3 균형 트리 = 135
4.3.1 2-3-4 트리 = 135
4.3.2 레드-블랙 트리 = 140
4.4 해싱 = 150
4.4.1 연쇄법 = 152
4.4.2 선형 탐사법 = 153
4.4.3 이중 해싱 = 158
4.5 기수 탐색 = 163
4.5.1 디지털 탐색 트리 = 164
4.5.2 기수 탐색 트라이 = 169
4.5.3 패트리샤 트리 = 175
4.6 외부 탐색 = 181
4.6.1 인덱스된 순차 접근 = 182
4.6.2 B-트리 = 183
연습문제 = 187
Chapter 05 스트링 처리 알고리즘 = 191
5.1 스트링 탐색 알고리즘 = 192
5.1.1 직선적 알고리즘 = 192
5.1.2 KMP 알고리즘 = 196
5.1.3 보이어-무어 알고리즘 = 204
5.1.4 라빈-카프 알고리즘 = 209
5.2 패턴 매칭 알고리즘 = 212
5.3 화일 압축 알고리즘 = 218
5.3.1 런-길이 인코딩 = 219
5.3.2 가변-길이 인코딩 = 220
5.4 암호화 알고리즘 = 229
5.4.1 단순한 기법 = 229
5.4.2 공개 키 암호화 시스템 = 231
연습문제 = 234
Chapter 06 기하 알고리즘 = 239
6.1 기본 개념 = 240
6.2 기초적인 알고리즘 = 242
6.2.1 선분의 교차 검사 = 242
6.2.2 단순 폐쇄 경로 = 249
6.2.3 다각형 포함 여부 검사 = 253
6.3 볼록 껍질 찾기 = 259
6.3.1 짐꾸리기 알고리즘 = 260
6.3.2 그라함 스캔 알고리즘 = 265
6.3.3 내부 제거 = 271
6.4 최근접 점쌍 찾기 = 272
연습문제 = 284
Chapter 07 동적 계획법 = 287
7.1 기본 개념 = 288
7.2 행렬의 연쇄적 곱셈 = 291
7.3 최적 이진 탐색 트리 = 296
7.4 스트링 편집 거리 = 304
연습문제 = 309
appendix A ⅵ 편집기 사용법 = 311
appendix B g++ 및 gdb 사용법 = 315
appendix C 기초 수학 = 319
찾아보기 = 331