Preface to the Second Edition
1. Thinking in Algorithms
Understand the Problem
Naive Solution
Intelligent Approaches
Summary
References
2. The Mathematics of Algorithms
Size of a Problem Instance
Rate of Growth of Functions
Analysis in the Best, Average, and Worst Cases
Performance Families
Benchmark Operations
References
3. Algorithm Building Blocks
Algorithm Template Format
Pseudocode Template Format
Empirical Evaluation Format
Floating-Point Computation
Example Algorithm
Common Approaches
References
4. Sorting Algorithms
Transposition Sorting
Selection Sort
Heap Sort
Partition-Based Sorting
Sorting without Comparisons
Bucket Sort
Sorting with Extra Storage
String Benchmark Results
Analysis Techniques
References
5. Searching
Sequential Search
Binary Search
Hash-Based Search
Bloom Filter
Binary Search Tree
References
6. Graph Algorithms
Graphs
Depth-First Search
Breadth-First Search
Single-Source Shortest Path
Dijkstra's Algorithm for Dense Graphs
Comparing Single-Source Shortest-Path Options
All-Pairs Shortest Path
Minimum Spanning Tree Algorithms
Final Thoughts on Graphs