Introduction to algorithms
The latest edition of the essential text and professional reference, with substantial new material on such topics as vEB trees, multithreaded algorithms, dynamic programming, and edge-based flow. 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. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, substantial additions to the chapter on recurrence (now called "Divide-and-Conquer"), and an appendix on matrices. It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many exercises and problems have been added for this edition. The international paperback edition is no longer available; the hardcover is available worldwide
1 online resource (xix, 1292 pages) : illustrations
9780262270830, 9781628709131, 0262270838, 1628709138
676697295
I. Foundations. The role of algorithms in computing
Getting started
Growth of functions
Divide-and-conquer
Probabilistic analysis and randomized algorithms
II. Sorting and order statistics. Heapsort
Quicksort
Sorting in linear time
Medians and order statistics
III. Data structures. Elementary data structures
Hash tables
Binary search trees
Red-black trees
Augmenting data structures
IV. Advanced design and analysis techniques. Dynamic programming
Greedy algorithms
Amortized analysis
V. Advanced data structures. B-trees
Fibonacci heaps
van Emde Boas trees
Data structures for disjoint sets
VI. Graph algorithms. Elementary graph algorithms
Minimum spanning trees
Single-source shortest paths
All-pairs shortest paths
Maximum flow
VII. Selected topics. Multithreaded algorithms
Matrix operations
Linear programming
Polynomials and the FFT
Number-theoretic algorithms
String matching
Computational geometry
NP-completeness
Approximation algorithms
VIII. Appendix: Mathematical background. Summations
Sets, etc
Counting and probability
Matrices