목차
기본사항들 = 1
1장 소개 = 3
알고리즘 = 4
본 교재 주제들의 개요 = 5
2장 C ++ 와 C = 9
예제 : 유크리드(Euclid) 알고리즘 = 10
데이터 형(Types of Data) = 12
입/출력 = 13
결론 = 15
연습문제 = 17
3장 기초적인 자료구조 = 19
배열(Arrays) = 19
연결 리스트(linked list) = 22
기억장치 할당(Storage Allocation) = 27
스택 삽입(Pushdown Stacks) = 30
스택들의 연결 리스트 구현 = 34
큐(Queues) = 36
추상적이고 구체적인 자료 형 = 38
연습문제 = 41
4장 트리 = 43
용어 풀이(Glossary) = 44
성질(properties) = 47
이진 트리의 표현 = 49
포리스트의 표현(Representing Forests) = 52
트리 운행(Traversing Trees) = 54
연습문제 = 60
5장 재귀 = 61
재발생(recurrence) = 62
분할-정복(Divide-and-Conquer) = 64
재귀적으로 트리를 운행 = 70
재귀를 제거 = 72
전망(Perspective) = 76
연습문제 = 77
6장 알고리즘 분석 = 79
구조(Framework) = 80
알고리즘 분류 = 81
계산 복잡도(Computational Complexity) = 84
평균 경우 분석 = 87
근사치와 점진적 결과 = 87
기본적인 재발생(basic recurrences) = 89
통찰 = 92
연습문제 = 94
7장 알고리즘 구현 = 95
알고리즘 선택 = 96
실험적 분석 = 97
프로그램 최적화 = 99
알고리즘과 시스템 = 101
연습문제 = 103
정렬 알고리즘 = 105
8장 기초적인 정렬 방법들 = 107
게임의 규칙 = 108
선택 정렬(Selection Sort) = 111
삽입 정렬(Insertion Sort) = 113
버블 정렬(Bubble Sort) = 116
기초적인 정렬들의 활용도 특징 = 116
큰 레코드로 된 파일을 정렬 = 120
쉘 정렬(Shellsort) = 124
분배 계수기(Distribution Counting) = 128
연습문제 = 131
9장 퀵 정렬 = 133
기본 알고리즘 = 134
퀵 정렬의 활용도 특징 = 139
재귀를 제거(Removing Recursion) = 141
적은 부분 파일들 = 144
세 가지 중의 중위수를 분할(Median-of-Three Partitioning) = 145
선택 = 146
연습문제 = 150
10장 기수 정렬 = 151
비트(bits) = 152
기수 교환 정렬(Radix Exchange Sort) = 153
일직선상의 기수 정렬(Straight Radix Sort) = 158
기수 정렬의 활용도 특성 = 160
선형 정렬(Linear Sort) = 161
연습문제 = 164
11장 우선순위 = 165
기초적인 구현들 = 167
히프 자료 구조 = 169
히프에서의 알고리즘 = 170
히프 정렬(Heapsort) = 175
간접 히프(Indirect Heaps) = 181
고급 구현 = 183
연습문제 = 184
12장 병합 정렬 = 185
병합 = 186
병합 정렬 = 188
리스트 병합 정렬 = 189
상향식 병합 정렬 = 191
활용도 특징 = 195
최적화된 구현 = 197
재 방문된 재귀 = 198
연습문제 = 200
13장 외부 정렬 = 201
정렬-병합 = 202
균형화된 다중 방법 병합(Balanced Multiway Merging) = 203
대체 선택(Replacement Selection) = 205
실제적인 고려들 = 208
다중 단계 병합(Polyphase Merging) = 210
더 쉬운 방법 = 212
연습문제 = 214
검색 알고리즘 = 215
14장 기초적인 검색 방법들 = 217
순차적 검색(Sequential Searching) = 219
이진 검색(Binary Search) = 223
이진 트리 검색(Binary Tree Search) = 228
삭제(Deletion) = 235
간접 이진 검색 트리들 = 237
연습문제 = 239
15장 균형 트리 = 241
하향식 2-3-4 트리들 = 242
적색-흑색(Red-Black) 트리 = 246
다른 알고리즘 = 256
연습문제 = 257
16장 해싱 = 259
해시 함수(Hash Functions) = 260
분리된 연쇄(Separate Chaining) = 262
선형 조사(Linear Probing) = 265
이중 해싱(Double Hashing) = 268
통찰 = 271
연습문제 = 273
17장 기수 검색 = 275
디지털 검색 트리(Digital Search Trees) = 276
기수 검색 트라이(Radix Search Tries) = 279
다중 방법 기수 검색(Multiway Radix Searching) = 282
패트리시아(Patricia) = 284
연습문제 = 289
18장 외부 검색 = 291
색인 순차 접근(Indexed Sequential Access) = 292
B-트리(B-trees) = 294
확장 가능 해싱(Extendible Hashing) = 299
가상 기억장치(Virtual Memory) = 305
연습문제 = 306
스트링 처리 = 307
19장 스트링 검색 = 309
간단한 역사 = 310
주먹구구식 알고리즘 = 311
Knuth-Morris-Pratt 알고리즘 = 313
Boyer-Moore 알고리즘 = 319
Rabin-Karp 알고리즘 = 323
다중 검색(Multiple Searches) = 325
연습문제 = 326
20장 패턴 일치 = 327
패턴을 기술 = 328
패던 일치 기계 = 329
기계를 표현 = 333
기계를 모의 실험 = 334
연습문제 = 339
21장 파싱 = 341
문맥 자유 문법들(Context-Free Grammars) = 342
하향식 파싱(Top-Down Parsing) = 345
상향식 파싱 = 348
컴파일러(Compilers) = 349
컴파일러-컴파일러 = 353
연습문제 = 355
22장 파일 압축 = 357
반복문자-길이의 코드화(Run-Length Encoding) = 358
가변문자-길이 코드화(Variable-Length Encoding) = 361
Huffman 코드의 구성(Building the Huffman Code) = 363
구현(Implemenentation) = 366
연습문제 = 370
23장 암호학 = 371
게임 규칙(Rules of the Game) = 372
간단한 방법들(Simple Methods) = 374
암호 작성/해독기들(Encryption/Description Machines) = 376
공개키 암호 시스템들(Public-key Cryptosystems) = 377
연습문제 = 381
기하학적 알고리즘 = 383
24장 기초적인 기하학적 방법 = 385
점, 선 및 다각형(Points, Lines, and Polygons) = 386
선분 교차(Line Segment Intersection) = 388
단순 폐경로(Simple Closed Path) = 390
다각형 안에 포함됨(Inclusion in a Polygon) = 392
전망(Perspective) = 394
연습문제 = 396
25장 볼록 외곽 찾기 = 397
게임 규칙(Rules of the Game) = 399
패키지 포장(Package-Wrapping) = 400
Graham 스캔(The Graham Scan) = 403
내부제거(Interior Elimination) = 408
성능 문제(performance Issues) = 409
연습문제 = 412
26장 구간 검색 = 413
기본 방법(Elementary Methods) = 415
격자법(Grid Method) = 417
이차원 트리(Two-Dimensional Tree) = 421
다차원 구간 검색(Multidimensional Range Searching) = 426
연습문제 = 428
27장 기하학적 교차 = 429
수평-수직선들(Horizontal and Vertical Line) = 430
구현(Implementation) = 434
일반적 선분 교차(General Line Intersection) = 437
연습문제 = 441
28장 가장 인접한 점 문제들 = 443
가장 인접한 쌍 문제(Closest-pair Problem) = 444
Voronoi 다이어그램(Voronoi Diagram) = 450
연습문제 = 455
그래프 알고리즘 = 457
29장 기본 그래프 알고리즘들 = 459
용어풀이(Glossary) = 460
표현(Representation) = 463
깊이-우선 검색(Depth-First Search) = 468
비재귀적 깊이-우선 검색(Nonrecursive Depth-First Search) = 474
너비-우선 검색(Breadth-First Search) = 477
미로(Mazes) = 480
전망(Perspective) = 481
연습문제 = 483
30장 연결 = 485
연결된-요소들(Connected Components) = 486
이중연결성(Biconnectivity) = 487
찾기-합하기 알고리즘들(Union-Find Algorithm) = 490
연습문제 = 500
31장 가중치 그래프 = 501
최소 스패닝 트리(Minimum Spanning Tree) = 503
우선순위-우선 검색(Priority-First Search) = 504
Kruskal 방법(Kruskal's Method) = 509
최단 경로(Shortest Path) = 512
기하학적 문제(Geometric Problems) = 519
연습문제 = 521
32장 방향성 그래프 = 523
깊이-우선 검색(Depth-First Search) = 524
추이적 폐포(Transitive Closure) = 526
모든 최단 경로들(All Shortest Paths) = 529
위상 정렬(Topological sorting) = 532
강하게 연결된 - 요소(Strongly Connected Components) = 535
연습문제 = 538
33장 네트워크 흐름 = 539
네트워크 흐름 문제(The Network Flow Problems) = 540
Ford-Fulkerson 방법(Ford-Fulkerson Method) = 542
네트워크 검색(Network Searching) = 544
연습문제 = 549
34장 매칭 = 551
양분 그래프(Bipartite Graphs) = 553
안정적 결혼 문제(Stable Marriage Problem) = 556
고수준 알고리즘(Advanced Algorithms) = 561
연습문제 = 562
수학적 알고리즘들 = 563
35장 난수 = 565
응용 분야들(Applications) = 566
선형 조화 방법(Linear Congruential Method) = 567
부가적 조화 방법(Additive Congruential Method) = 571
무작위성 시험(Testing Randomness) = 574
구현노트(Implementation Notes) = 576
연습문제 = 578
36장 산술연산 = 579
다항식 연산(Polynomial Arithmetic) = 580
다항식 평가법 및 보간법(Polymonial Evaluation and Interpolation) = 583
다항식 곱(Polynomial Multiplication) = 587
큰 정수 값을 가지는 경우의 산술연산(Arithmetic Operations with Large Integers) = 590
행렬 산술 연산(Matrix Arithmetic) = 592
연습문제 = 595
37장 Gauss 소거법 = 597
단순 예제(A Simple Example) = 597
방법 개요(Outline of the Method) = 600
변형과 확장(Variations and Extensions) = 604
연습문제 = 607
38장 곡선 맞춤 = 609
다항식 보간(Polynomial Interpolation) = 610
스플라인 보간(Spline Interpolation) = 611
최소 제곱 방법(Method of Least Squares) = 616
연습문제 = 620
39장 적분 = 621
심볼릭 적분(Symbolic Integration) = 622
간단한 구상법(Simple Quadrature Methods) = 623
합성법(Compound Methods) = 627
적응력있는 구상법(Adaptive Quadrature) = 628
연습문제 = 631
고수준 토픽들 = 633
40장 병렬 알고리즘 = 635
일반적 방식(General Approaches) = 636
완전-셔플(Perfect Shuffles) = 637
시스톨릭 배열(Systolic Arrays) = 643
전망(Perspective) = 647
연습문제 = 649
41장 빠른 Fourier 변환 = 651
평가, 곱셈, 보간(Evaluate, Multiply, Interpolate) = 651
복소수 단위근들(Complex Roots of Unity) = 653
단위근들에서의 계산(Evaluation at the Roots of Unity) = 654
단위근들에서의 보간(Inerpolation at the Roots of Unity) = 657
구현(Implementation) = 659
연습문제 = 662
42장 동적 프로그래밍 = 663
배낭 문제(Knapsack Problem) = 664
행렬 연속곱셈(Matrix Chain Product) = 667
최적 검색 트리들(Optimal Binary Search Tree) = 671
시간 및 공간 요구 조건(Time and Space Requirements) = 673
연습문제 = 675
43장 선형 프로그래밍 = 677
선형 프로그래밍(Linear Programming) = 678
기하학적 해석(Geometric Interpretation) = 679
심플렉스 기법(Simplex Method) = 683
구현(Implementation) = 688
연습문제 = 692
44장 완전 검색 = 693
그래프에서의 완전-검색(Exhaustive Search in Graphs) = 694
역추적(Backtracking) = 697
이탈(Digression) : 순열 생성(Permutation Generation) = 701
근사치 알고리즘(Approximation Algorithm) = 703
연습문제 = 706
45장 NP - 완전 문제들 = 707
확정적 및 비확정적 다항식-시간 알고리즘 = 708
NP-완전성(NP-Completeness) = 710
쿠크(Cook)의 정리 = 713
일부 NP-완전 문제들 = 713
연습문제 = 716
용어풀이 = 717
찾아보기 = 733