Introduction to algorithms /
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein.
- Third edition.
- xix, 1292 pages : illustrations ; 24 cm.
Includes bibliographical references (pages 1231-1250) and index.
Foundations. The role of algorithms in computing -- Getting started -- Growth of functions -- Divide-and-conquer -- Probabilistic analysis and randomized algorithms -- I. Sorting and order statistics. Heapsort -- Quicksort -- Sorting in linear time -- Medians and order statistics -- II. Data structures. Elementary data structures -- Hash tables --Binary search trees -- Red-black trees -- Augmenting data structures -- Advanced design and analysis techniques. Dynamic programming -- Greedy algorithms -- Amortized analysis -- Advanced data structures. B-trees -- Fibonacci heaps -- van Emde Boas trees -- Data structures for disjoint sets -- Graph algorithms. Elementary graph algorithms -- Minimum spanning trees -- $t Single-source shortest paths -- All-pairs shortest paths -- Maximum flow -- 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.
This edition has been revised and updated throughout. It includes some new chapters. It features improved treatment of dynamic programming and greedy algorithms as well as a new notion of edge-based flow in the material on flow networks.--[book cover].