Introduction to Algorithms, Second Edition 2nd Edition
| Thomas H. Cormen (Author) Find all the books, read about the author, and more. See search results for this author |
| Charles E. Leiserson (Author) Find all the books, read about the author, and more. See search results for this author |
| Ronald L. Rivest (Author) Find all the books, read about the author, and more. See search results for this author |
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
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.
Frequently bought together
Customers who viewed this item also viewed
Editorial Reviews
Amazon.com Review
With sample problems and mathematical proofs demonstrating the correctness of each algorithm, this book is ideal as a textbook for classroom study, but its reach doesn't end there. The authors do a fine job of explaining each algorithm. (Reference sections on basic mathematical notation will help readers bridge the gap, but it will help to have some math background to appreciate the full achievement of this handsome hardcover volume.) Every algorithm is presented in pseudo-code, which can be implemented in any computer language, including C/C++ and Java. This ecumenical approach is one of the book's strengths. When it comes to sorting and common data structures, from basic linked lists to trees (including binary trees, red-black, and B-trees), this title really shines, with clear diagrams that show algorithms in operation. Even if you just glance over the mathematical notation here, you can definitely benefit from this text in other ways.
The book moves forward with more advanced algorithms that implement strategies for solving more complicated problems (including dynamic programming techniques, greedy algorithms, and amortized analysis). Algorithms for graphing problems (used in such real-world business problems as optimizing flight schedules or flow through pipelines) come next. In each case, the authors provide the best from current research in each topic, along with sample solutions.
This text closes with a grab bag of useful algorithms including matrix operations and linear programming, evaluating polynomials, and the well-known Fast Fourier Transformation (FFT) (useful in signal processing and engineering). Final sections on "NP-complete" problems, like the well-known traveling salesman problem, show off that while not all problems have a demonstrably final and best answer, algorithms that generate acceptable approximate solutions can still be used to generate useful, real-world answers.
Throughout this text, the authors anchor their discussion of algorithms with current examples drawn from molecular biology (like the Human Genome Project), business, and engineering. Each section ends with short discussions of related historical material, often discussing original research in each area of algorithms. On the whole, they argue successfully that algorithms are a "technology" just like hardware and software that can be used to write better software that does more, with better performance. Along with classic books on algorithms (like Donald Knuth's three-volume set, The Art of Computer Programming), this title sets a new standard for compiling the best research in algorithms. For any experienced developer, regardless of their chosen language, this text deserves a close look for extending the range and performance of real-world software. --Richard Dragan
Topics covered: Overview of algorithms (including algorithms as a technology); designing and analyzing algorithms; asymptotic notation; recurrences and recursion; probabilistic analysis and randomized algorithms; heapsort algorithms; priority queues; quicksort algorithms; linear time sorting (including radix and bucket sort); medians and order statistics (including minimum and maximum); introduction to data structures (stacks, queues, linked lists, and rooted trees); hash tables (including hash functions); binary search trees; red-black trees; augmenting data structures for custom applications; dynamic programming explained (including assembly-line scheduling, matrix-chain multiplication, and optimal binary search trees); greedy algorithms (including Huffman codes and task-scheduling problems); amortized analysis (the accounting and potential methods); advanced data structures (including B-trees, binomial and Fibonacci heaps, representing disjoint sets in data structures); graph algorithms (representing graphs, minimum spanning trees, single-source shortest paths, all-pairs shortest paths, and maximum flow algorithms); sorting networks; matrix operations; linear programming (standard and slack forms); polynomials and the Fast Fourier Transformation (FFT); number theoretic algorithms (including greatest common divisor, modular arithmetic, the Chinese remainder theorem, RSA public-key encryption, primality testing, integer factorization); string matching; computational geometry (including finding the convex hull); NP-completeness (including sample real-world NP-complete problems and their insolvability); approximation algorithms for NP-complete problems (including the traveling salesman problem); reference sections for summations and other mathematical notation, sets, relations, functions, graphs and trees, as well as counting and probability backgrounder (plus geometric and binomial distributions).
From the Publisher
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 Author
Charles E. Leiserson is Professor of Computer Science and Engineering at the Massachusetts Institute of Technology.
Ronald L. Rivest is Andrew and Erna Viterbi Professor of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology.
Clifford Stein is Professor of Industrial Engineering and Operations Research at Columbia University.
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Product details
- Publisher : The MIT Press; 2nd edition (September 1, 2001)
- Language : English
- Hardcover : 1184 pages
- ISBN-10 : 0262032937
- ISBN-13 : 978-0262032933
- Item Weight : 4.45 pounds
- Dimensions : 8 x 2.25 x 9 inches
- Best Sellers Rank: #394,811 in Books (See Top 100 in Books)
- #105 in Computer Algorithms
- #265 in Programming Algorithms
- #2,154 in Computer Science (Books)
- Customer Reviews:
About the authors

Thomas H. Cormen is Professor and former Chair of the Dartmouth College Department of Computer Science and former director of the Dartmouth College Institute for Writing and Rhetoric. He received the B.S.E. degree in Electrical Engineering and Computer Science from Princeton University in 1978 and the S.M. and Ph.D. degrees in Electrical Engineering and Computer Science from MIT in 1986 and 1993, respectively. He is coauthor of the leading textbook on computer algorithms, Introduction to Algorithms, which he wrote with Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. The book, now in its third edition, has been translated into several languages. He is also the author of Algorithms Unlocked, a gentle introduction to understanding computer algorithms and how they relate to real-world problems.
Outside computer science, Cormen likes skating (inline and nordic), paddling, and cooking and eating barbecue.

Charles E. Leiserson is Professor of Computer Science and Engineering at the Massachusetts Institute of Technology.
Customer reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
If you are seeking a good data structure or algorithm textbook, then you cannot go wrong with Introduction to Algorithms.
The first one is published by the MIT Press, with the title "Introduction to Algorithms". This one has no CD. This is the one Amazon currently carries, so if you buy from Amazon, you get no CD.
The second one is published by McGraw-Hill, also with the title "Introduction to Algorithms". This one also has no CD.
The third one is published by McGraw-Hill too, but has the title "Introduction to Algorithms and Java CD-ROM". This is the one with the CD. It's much more expensive than the other two.
The CD in the third version contains implementations of the algorithms in Java.
To find someone that carries the CD version, search for this ISBN-13 number: 9780072970548 , or for "Introduction to Algorithms and Java CD-ROM" .
Note: Some listings that come up for the ISBN number will not be the correct version. Look carefully for "and Java CD-ROM" before buying.
Essentially, this is THE book to get if you want to study algorithms, even a little.
Top reviews from other countries
No obstante es un libro denso, poco divulgativo (no se lee por placer, se lee para aprender a hacer algo concreto, algo que en general es dificil), y que requiere tiempo por la cantidad de conceptos y datos que aporta en cada una de sus páginas.
Un libro para tomárselo con calma, o para consultar y repasar conceptos cuando sea necesario. Ideal para gente con experiencia en programación, matemáticas o, al menos, algún trasfondo en materias lógicas. No recomendado para una persona que esté aprendiendo en frío o que nunca haya tenido una aproximación, al menos, a la programación.
Warum also nur 4 Sterne? Ja, das kommt durch die fehlenden Lösungen zu den meisten Übungen. Wenn schon Aufgaben in einem Buch gestellt werden, sollte man irgendwie an Lösungen dazu kommen. Ich bin ein absoluter Fan von Aufgaben in Lehrbüchern, aber die Lösungen sollten wenigstens im Internet zu finden sein, wenn schon nicht im Buch selbst. Das ist schade und kostet einen Stern.








