Introduction to Algorithms is a book on computer programming by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
The book has been widely used as the textbook for algorithms courses at many universities and is commonly cited as a reference for algorithms in published papers, with over 10,000 citations documented on CiteSeerX.
The book sold half a million copies during its first 20 years.
Its fame has led to the common use of the abbreviation "CLRS" (Cormen, Leiserson, Rivest, Stein), or, in the first edition, "CLR" (Cormen, Leiserson, Rivest).
In the preface, the authors write about how the book was written to be comprehensive and useful in both teaching and professional environments.
Each chapter focuses on an algorithm, and discusses its design techniques and areas of application.
Instead of using a specific programming language, the algorithms are written in pseudocode.
The descriptions focus on the aspects of the algorithm itself, its mathematical properties, and emphasize efficiency.
Editions
The first edition of the textbook did not include Stein as an author, and thus the book became known by the initialism CLR.
It included two chapters ("Arithmetic Circuits" & "Algorithms for Parallel Computers") that were dropped in the second edition.
After the addition of the fourth author in the second edition, many began to refer to the book as "CLRS".
This first edition of the book was also known as "The Big White Book (of Algorithms)."
With the second edition, the predominant color of the cover changed to green, causing the nickname to be shortened to just "The Big Book (of Algorithms)."
A third edition was published in August 2009.
The fourth edition will be released in March 2022 https://mitpress.mit.edu/books/introduction-algorithms-fourth-edition Cover design
The mobile depicted on the cover, Big Red (1959) by Alexander Calder, can be found at the Whitney Museum of American Art in New York City.Cormen et al, back cover.
See, also, Big Red at the Whitney Museum of American Art web site.
An Introduction to Language by Fromkin also uses Calder's mobile on its cover.
Table of contents
I Foundations
1 The Role of Algorithms in Computing
2 Getting Started
3 Growth of Functions
4 Divide-and-Conquer
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 Tables
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 Fibonacci Heap
20 Van Emde Boas Trees
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 Multithreaded Algorithms
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
D Matrices
Publication history
12 printings up to 2009, errata:
1320 pp., 5 printings up to 2016), errata:
See also
The Art of Computer Programming
References
External links
on MIT Press
