1. Preface
  2. Notation
  3. Part I: Foundations
  4. Introduction to Algorithms
  5. Analyzing Algorithms
  6. Recursion and Divide-and-Conquer
  7. Part II: Sorting and Selection
  8. Elementary Sorting
  9. Efficient Sorting
  10. Linear-Time Sorting and Selection
  11. Part III: Data Structures
  12. Arrays, Linked Lists, Stacks, and Queues
  13. Hash Tables
  14. Trees and Binary Search Trees
  15. Balanced Search Trees
  16. Heaps and Priority Queues
  17. Part IV: Graph Algorithms
  18. Graphs and Graph Traversal
  19. Shortest Paths
  20. Minimum Spanning Trees
  21. Network Flow
  22. Part V: Algorithm Design Techniques
  23. Dynamic Programming
  24. Greedy Algorithms
  25. Part VI: Advanced Topics
  26. Disjoint Sets
  27. Tries and String Data Structures
  28. String Matching
  29. Complexity Classes and NP-Completeness
  30. Approximation Algorithms
  31. Bibliography