Preface
1. INTRODUCTION
2. MATHEMATICAL ALGORITHMS
2.1. Polynomials, Matrices, Data Structures
2.2. Applications, Linear Congruential Method, Additive Congruential Method, Testing Randomness, Implementation Notes
2.3. Evaluation, Interpolation, Multiplication, Divide-and-conquer Recurrences, Matrix Multiplication
2.4. A Simple Example, Outline of the Method, Variations and Extensions
2.5. Polynomial Interpolation, Spline Interpolation, Method of Least Squares
2.6. Symbolic Integration, Simple Quadrature Methods, Compound Methods, Adaptive Quadrature
3. SORTING
3.1. Elementary Sorting Methods
3.2. The Basic Algorithm, Removing Recursion, Small Subfiles, Median-of-Three Partitioning
3.3. Radix Exchange Sort, Straight Radix Sort, A Linear Sort
3.4. Elementary Implementations, Heap Data Structure, Algorithms on Heaps, Heapsort, Indirect Heaps, Advanced Implementations
3.5. Selection and Merging
3.6. Sort-Merge, Balanced Multiway Merging, Replacement Selection, Practical Considerations, Polyphase Merging, An Easier Way
4. SEARCHING
4.1. Elementary Searching Methods
4.2. Top-Down 2-9-4 Trees, Red-Black Trees, Other Algorithms
4.3. Hash Functions, Separate Chaining, Open Addressing, Analytic Results
4.4. Digital Search Trees, Radix Search Wes, Multiway Radar Searching, Patricia
4.5. Indexed Sequential Access, B-trees, Extendible Hashing, Virtual Memory
5. STRING PROCESSING
5.1. A Short History, Brute-Force Algorithm, Knuth-Morris-Pratt Algorithm, Bayer-Moore Algorithm, Rabin-Karp Algorithm, Multiple Searches
5.2. Describing Patterns, Pattern Matching Machines, Representing the Machine, Simulating the Machine
5.3. Context-Free Grammars, Top-Down Parsing, Bottom-Up Parsing, Compilers, Compiler-Compilers
5.4. Run-Length Encoding, Variable-Length Encoding
5.5. Rules of the Game, Simple Methods, Encryption/Decryption Machines, Public-Key Cryptosystems
6. GEOMETRIC ALGORITHMS
6.1. Elementary Geometric Methods
6.2. Finding the Convex Hull
6.3. Elementary Methods, Grad Method, 2D Trees, Multidimensional Range Searching
6.4. Horizontal and Vertical Lines, General Line Intersection
6.5. Closest Point Problems
7. GRAPH ALGORITHMS
7.1. Elementary Graph Algorithms
7.2. Biconnectivity, Graph Traversal Algorithms, Union-Find Algorithms
7.3. Minimum Spanning Tree, Shortest Path, Dense Graphs, Geometric Problems
7.4. Depth-First Search, Transitive Closure, Topological Sorting, Strongly Connected Components
7.5. The Network Flow Problem, Ford-Fulkerson Method, Network Searching
7.6. Bipartite Graphs, Stable Marriage Problem, Advanced Algorithms
8. ADVANCED TOPICS
8.1. General Approaches, Perfect Shuffles, Systolic Arrays
8.2. The Fast Fourier Transform
8.3. Knapsack Problem, Matrix Chain Product, Optimal Binary Search Trees, Shortest Paths, Time and Space Requirements
8.4. Linear Programs, Geometric Interpretation, The Simplex Method, Implementation
8.5. Exhaustive Search in Graphs, Backtracking, Permutation Generation, Approximation Algorithms
8.6. NP-complete Problems