Introduction to Algorithms – Thomas H. Cormen, Clara Lee, Erica Lin – 2nd Edition


Some on are rigorous but incomplete; others cover masses of material but lack rigor. ” uniquely combines rigor and comprehensiveness.

The covers a broad range of algorithms in depth, yet makes their design and accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming.

The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor. The first edition became a widely used text in universities worldwide as well as the standard for professionals. The second edition new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout.

Table of Content


I Foundations

1 The Role of Algorithms in Computing
2 Getting Started
3 Growth of Functions
4 Recurrences
5 Probabilistic Analysis and Randomized Algorithms

II Sorting and Order Statistics

6 Heapsort
7 Quicksort
8 Sorting in Linear Time
9 Medians and Order Statistics

III Data Structures

10 Elementary Data Structures
11 Hash Table
12 Binary Search Trees
13 Red-Black Trees
14 Augmenting Data Structures

IV Advanced Design and Analysis Techniques

15 Dynamic Programming
16 Greedy Algorithms
17 Amortized Analysis

V Advanced Data Structures

18 B-Trees
19 Binomial Heaps
20 Fibonacci Heaps
21 Data Structures for Disjoint Sets

VI Graph Algorithms

22 Elementary Graph Algorithms
23 Minimum Spanning Trees
24 Single-Source Shortest Paths
25 All-Pairs Shortest Paths
26 Maximum Flow

VII Selected Topics

27 Sorting Networks
28 Matrix Operations
29 Linear Programming
30 Polynomials and the FFT
31 Number-Theoretic Algorithms
32 String Matching
33 Computational Geometry
34 NP-Completeness
35 Approximation Algorithms

VIII Appendix: Mathematical Background
A Summations
B Sets, Etc.
C Counting and Probability