Chapter 1: Algorithms: Efficiency, Analysis, and Order
Chapter 2: Divide-and-Conquer
Chapter 3 Dynamic Programming
Chapter 4: The Greedy Approach
Chapter 5: Backtracking
Chapter 6: Branch-and-Bound
Chapter 7: Introduction to Computational Complexity: The Sorting Problem
Chapter 8: More Computational Complexity: The Searching Problem
Chapter 9: Computational Complexity and Interactability: An Introduction to the Theory of NP
Chapter 10: Number-Theoretic Algorithms
Chapter 11: Introduction to Parallel Algorithms
Appendix A: Review of Necessary Mathematics
Appendix B: Solving Recurrence Equations: With Applications to Analysis of Recursive Algorithms
Appendix C: Data Structures for Disjoint Sets
References