목차
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
닫기