Introduction to Algorithms, Second Edition

  • 22h 48m
  • Charles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen
  • The MIT Press
  • 2001

There are books on algorithms that are rigorous but incomplete and others that cover masses of material but lack rigor. Introduction to Algorithms 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 the standard reference for professionals and a widely used text in universities worldwide. The second edition features new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming, as well as extensive revisions to virtually every section of the book. In a subtle but important change, loop invariants are introduced early and used throughout the text to prove algorithm correctness. Without changing the mathematical and analytic focus, the authors have moved much of the mathematical foundations material from Part I to an appendix and have included additional motivational material at the beginning.

About the Authors

Thomas H. Cormen is Associate Professor of Computer Science at Dartmouth College.

Charles E. Leiserson is Professor of Computer Science and Electrical Engineering at the Massachusetts Institute of Technology.

Ronald L. Rivest is Andrew and Erna Viterbi Professor of Computer Science at the Massachusetts Institute of Technology.

Clifford Stein is Associate Professor of Industrial Engineering and Operations Research at Columbia University.

In this Book

  • The Role of Algorithms in Computing
  • Getting Started
  • Growth of Functions
  • Recurrences
  • Probabilistic Analysis and Randomized Algorithms
  • Heapsort
  • Quicksort
  • Sorting in Linear Time
  • Medians and Order Statistics
  • Elementary Data Structures
  • Hash Tables
  • Binary Search Trees
  • Red-Black Trees
  • Augmenting Data Structures
  • Dynamic Programming
  • Greedy Algorithms
  • Amortized Analysis
  • B-Trees
  • Binomial Heaps
  • Fibonacci Heaps
  • Data Structures for Disjoint Sets
  • Elementary Graph Algorithms
  • Minimum Spanning Trees
  • Single-Source Shortest Paths
  • All-Pairs Shortest Paths
  • Maximum Flow
  • Sorting Networks
  • Matrix Operations
  • Linear Programming
  • Polynomials and the FFT
  • Number-Theoretic Algorithms
  • String Matching
  • Computational Geometry
  • NP-Completeness
  • Approximation Algorithms
SHOW MORE
FREE ACCESS