- Series: MIT Press
- Hardcover: 1312 pages
- Publisher: The MIT Press; 3rd edition (July 31, 2009)
- Language: English
- ISBN-10: 0262033844
- ISBN-13: 978-0262033848
- Product Dimensions: 8 x 1.8 x 9 inches
- Shipping Weight: 4.7 pounds (View shipping rates and policies)
- Average Customer Review: 4.3 out of 5 stars See all reviews (442 customer reviews)
- Amazon Best Sellers Rank: #7,663 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Introduction to Algorithms, 3rd Edition (MIT Press) 3rd Edition
Use the Amazon App to scan ISBNs and compare prices.
Prepare for your professional certification with study guides and exam prep tools from Wiley. See more
Frequently bought together
Customers who bought this item also bought
As an educator and researcher in the field of algorithms for over two decades, I can unequivocally say that the Cormen et al book is the best textbook that I have ever seen on this subject. It offers an incisive, encyclopedic, and modern treatment of algorithms, and our department will continue to use it for teaching at both the graduate and undergraduate levels, as well as a reliable research reference.(Gabriel Robins, Department of Computer Science, University of Virginia)
Introduction to Algorithms, the 'bible' of the field, is a comprehensive textbook covering the full spectrum of modern algorithms: from the fastest algorithms and data structures to polynomial-time algorithms for seemingly intractable problems, from classical algorithms in graph theory to special algorithms for string matching, computational geometry, and number theory. The revised third edition notably adds a chapter on van Emde Boas trees, one of the most useful data structures, and on multithreaded algorithms, a topic of increasing importance.(Daniel Spielman, Department of Computer Science, Yale University)
About the Author
Thomas Cormen is Professor of Computer Science at Dartmouth College. Charles Leiserson is Professor of Computer Science and Engineering at MIT. Ronald L. Rivest is Andrew and Erna Viterbi Professor of Electrical Engineering and Computer Science at MIT. Clifford Stein is Professor of Industrial Engineering and Operations Research at Columbia University.
Browse award-winning titles. See more
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
This book is impressive! It covers a lot of subject matter and is clearly worded. However, you're going to get lost because this often reads more like a reference manual than a conversation that appeals to intuition. You'll be pushed into analyzing algorithms for theoretical data structures that you fuzzily remember (if at all). But, nonetheless, throw enough man hours into this book and you will learn concrete approaches to determining just how hard you're making the computer work.
My biggest criticism is that, as an *introduction*, this book doesn't do the best job at warming up readers to new tools and methodologies. This is an 'eh, just push them into the deep end' kind of approach to learning.
The book is essentially best described as a detailed, mathematically-oriented analysis of algorithmic theory and covers a wide variety of topics. Proofs of various concepts are built up with lemmas throughout as well, and many of the exercises in the book often ask for a proof to show that something is correct. The authors do provide a Solutions file online, but for only some exercises up through chapter 26 when it has 35 chapters.
The book more than "combines rigor and comprehensiveness" as it says on the back, and it will almost certainly be an indispensable reference in the future for anyone planning to work (or is already working) in a computer science-related field, but it also has some notable drawbacks as well, not the least of which is the title. A genuine "Introduction" to algorithms would've been either more accessible (with less math) or substantially shorter (at approximately half the page count or less), or both. As it is, the book's title could have more accurately reflected its density with something more like "Algorithm Theory In Depth" or "Algorithm Analysis". Fortunately the book includes an extensive index that lists out nearly every sub-topic that it covers for quick reference.
Some of the notable drawbacks include:
- It often shows that it was written by 4 different authors, as some topics are explained better than others (the graph algorithms overall were explained well) while others lacked sufficient clarity (recurrence relations, sorting in general, greedy algorithms, amortized analysis, NP completeness).
- Like many other academia-oriented textbooks, it suffers from overuse of the infamous pretentious phrase "it is easy to see," paticularly when it's not easy to see what the author is talking about.
- Chapter 4 suffers from a lack of explanation on solving recurrences by the recursion-tree and substitution methods, with insufficient examples.
- No exercises or content to help with actually implementing an algorithm in a programming language, because putting an algorithm into practice should be just as important as the theory.
- The authors write in the preface that the book is aimed at teachers, students, professionals, & their colleagues (!). A book that attempts to cater to both students and the authors' colleagues at the same time would appear to be paradoxical, right?
- Dry, dispassionate wording that fails to inspire the reader to continue reading the text, and continue learning past this book as well.
Despite the drawbacks it's a good, very dense & in-depth reference on the subject, but for those learning algorithms for the first time, I'd recommend one of these other books first that explain the concepts more clearly in plain English and then coming back to CLRS afterwards. Just pick the one based on the language you're most familiar with. I own copies of all of these books btw (a few in digital formats, not all of them in print) and can personally speak to their quality in offering clearer, easier-to-understand explanations of algorithms.
- Data Structures In C, by Noel Kalicharan
- Data Structures and Algorithms in C++ (3rd Edition), by Adam Drozdek (can't speak to the newer 4th Edition)
- Data Structures and Algorithms in Java (2nd Edition), by Robert Lafore
- Algorithms (4th Edition), by Robert Sedgewick & Kevin Wayne (uses Java)
- Problem Solving with Algorithms and Data Structures Using Python SECOND EDITION, by Bradley Miller & David Ranum
If you're a college student that has to buy this book for your algorithms class like I had to, there are a variety of free resources online that should make the subject easier to learn along the way, like the MIT Open CourseWare resources on algorithms (course numbers 6.006 and 6.046), StackOverflow, GeeksforGeeks, and the sheer quantity of lecture slides available online at other colleges & universities. Coursera regularly has a free class on the subject as well.
As such it probably earns more than the 3 stars I will give it from my own perspective. My reasons for this are inherent in my own relationship to the topic - as a "user" if you will.
I bought this book in order to dig deeper into my own conceptual understanding of algorithms, working by my myself.
For this purpose I found the book to be quite tedious. Disadvantageous are especially the fetishization of compact representations, a tendency mathematicians are known to have.
It really doesn't pull a lot of punches when it comes to dishing out mathematical expressions for the reader to patiently unfold for themselves in order to really grasp the meaning of the surrounding text - Ingestion of the material can become a true test of perseverance this way.
It also needs to be said that this is one of these books that bears "Introduction" in the title when it works in fact more like an encyclopedic heavyweight 1200 page quasi-complete survey of the field.
I'm writing this so you know what you are getting into. Be sure this is what you're looking for and what you need.