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

The book covers a broad range of algorithms in depth, yet makes their design and analysis 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 reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout.

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

REVIEW