A comprehensive update of the leading algorithms text, with new material on matchings in bipartite graphs, online algorithms, machine learning, and other topics.
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers, with self-contained chapters and algorithms in pseudocode. Since the publication of the first edition, Introduction to Algorithms has become the leading algorithms text in universities worldwide as well as the standard reference for professionals. This fourth edition has been updated throughout.
New for the fourth edition
- New chapters on matchings in bipartite graphs, online algorithms, and machine learning
- New material on topics including solving recurrence equations, hash tables, potential functions, and suffix arrays
- 140 new exercises and 22 new problems
- Reader feedback–informed improvements to old problems
- Clearer, more personal, and gender-neutral writing style
- Color added to improve visual presentation
- Notes, bibliography, and index updated to reflect developments in the field
- Website with new supplementary material
I Foundations
Introduction
1 The Role of Algorithms in Computing
2 Getting Started
3 Characterizing Running Times
4 Divide-and-Conquer
5 Probabilistic Analysis and Randomized Algorithms
II Sorting and Order Statistics
Introduction
6 Heapsort
7 Quicksort
8 Sorting in Linear Time
9 Medians and Order Statistics
III Data Structures
Introduction
10 Elementary Data Structures
11 Hash Tables
12 Binary Search Trees
13 Red-Black Trees
IV Advanced Design and Analysis Techniques
Introduction
14 Dynamic Programming
15 Greedy Algorithms
16 Amortized Analysis
V Advanced Data Structures
Introduction
17 Augmenting Data Structures
18 B-Trees
19 Data Structures for Disjoint Sets
VI Graph Algorithms
Introduction
20 Elementary Graph Algorithms
21 Minimum Spanning Trees
22 Single-Source Shortest Paths
23 All-Pairs Shortest Paths
24 Maximum Flow
25 Matchings in Bipartite Graphs
VII Selected Topics
Introduction
26 Parallel Algorithms
27 Online Algorithms
28 Matrix Operations
29 Linear Programming
30 Polynomials and the FFT
31 Number-Theoretic Algorithms
32 String Matching
33 Machine-Learning Algorithms
34 NP-Completeness
35 Approximation Algorithms
VIII Appendix: Mathematical Background
Introduction
A Summations
B Sets, Etc.
C Counting and Probability
D Matrices
Bibliography