Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
OK
Introduction to Algorithms, 3rd Edition (Mit Press) 3rd Edition
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.
- ISBN-109780262033848
- ISBN-13978-0262033848
- Edition3rd
- PublisherMIT Press
- Publication dateSeptember 1, 2009
- LanguageEnglish
- Dimensions9.08 x 8.18 x 2.06 inches
- Print length1292 pages
More items to explore
Editorial Reviews
Review
"As an educator and researcher in the field of algorithms for over two decades, I can unequivocally say that the Cormen 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
"In light of the explosive growth in the amount of data and the diversity of computing applications, efficient algorithms are needed now more than ever. This beautifully written, thoughtfully organized book is the definitive introductory book on the design and analysis of algorithms. The first half offers an effective method to teach and study algorithms; the second half then engages more advanced readers and curious students with compelling material on both the possibilities and the challenges in this fascinating field."--Shang-Hua Teng, University of Southern California
"
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.
Product details
- ASIN : 0262033844
- Publisher : MIT Press; 3rd edition (September 1, 2009)
- Language : English
- Hardcover : 1292 pages
- ISBN-10 : 9780262033848
- ISBN-13 : 978-0262033848
- Reading age : 18 years and up
- Grade level : 12 and up
- Item Weight : 4.95 pounds
- Dimensions : 9.08 x 8.18 x 2.06 inches
- Best Sellers Rank: #21,002 in Books (See Top 100 in Books)
- #1 in Data Structure and Algorithms
- #2 in Computer Programming Structured Design
- #1,486 in Reference (Books)
- Customer Reviews:
About the authors
Thomas H. Cormen is Emeritus 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 fourth 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.
Since retiring from Dartmouth, Cormen serves in the New Hampshire House of Representatives, representing the city of Lebanon, New Hampshire. He serves on the Science, Technology and Energy Committee.
In his spare time, Cormen likes skating (inline and nordic), paddling, and cooking and eating barbecue. He considers himself the world's worst electrician who has a Ph.D. in electrical engineering.
Clifford Seth Stein (born December 14, 1965), a computer scientist, is a professor of industrial engineering and operations research at Columbia University in New York, NY, where he also holds an appointment in the Department of Computer Science. Stein is chair of the Industrial Engineering and Operations Research Department at Columbia University. Prior to joining Columbia, Stein was a professor at Dartmouth College in New Hampshire.
Stein's research interests include the design and analysis of algorithms, combinatorial optimization, operations research, network algorithms, scheduling, algorithm engineering and computational biology.
Stein has published many influential papers in the leading conferences and journals in his fields of research, and has occupied a variety of editorial positions including in the journals ACM Transactions on Algorithms, Mathematical Programming, Journal of Algorithms, SIAM Journal on Discrete Mathematics and Operations Research Letters. His work has been funded by the National Science Foundation and the Sloan Foundation. As of November 1, 2015, his publications have been cited over 46,000 times, and he has an h-index of 42.
Stein is the winner of several prestigious awards including an NSF Career Award, an Alfred Sloan Research Fellowship and the Karen Wetterhahn Award for Distinguished Creative or Scholarly Achievement. He is also the co-author of two textbooks:
Introduction to Algorithms, with T. Cormen, C. Leiserson and R. Rivest, which is currently the best-selling textbook in algorithms and has been translated into 8 languages. About 39,500 of Stein's 46,000 citations are made to this book.
Discrete Math for Computer Science, with Ken Bogart and Scot Drysdale, which is a new textbook that covers discrete math at an undergraduate level.
Stein earned his B.S.E. from Princeton University in 1987, a Master of Science from The Massachusetts Institute of Technology in 1989, and a PhD also from the Massachusetts Institute of Technology in 1992.
In recent years, Stein has built up close ties with the Norwegian research community which earned him an honorary doctorate from the University of Oslo (May 2010).
Bio from Wikipedia, the free encyclopedia. Photo by Sergio01 (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], via Wikimedia Commons.
Charles E. Leiserson is Professor of Computer Science and Engineering at the Massachusetts Institute of Technology.
Ronald Linn Rivest (/rɪˈvɛst/; born May 6, 1947) is a cryptographer and an Institute Professor at MIT. He is a member of MIT's Department of Electrical Engineering and Computer Science (EECS) and a member of MIT's Computer Science and Artificial Intelligence Laboratory (CSAIL). He was a member of the Election Assistance Commission's Technical Guidelines Development Committee, tasked with assisting the EAC in drafting the Voluntary Voting System Guidelines.
Rivest is one of the inventors of the RSA algorithm (along with Adi Shamir and Len Adleman). He is the inventor of the symmetric key encryption algorithms RC2, RC4, RC5, and co-inventor of RC6. The "RC" stands for "Rivest Cipher", or alternatively, "Ron's Code". (RC3 was broken at RSA Security during development; similarly, RC1 was never published.) He also authored the MD2, MD4, MD5 and MD6 cry.ptographic hash functions. In 2006, he published his invention of the ThreeBallot voting system, a voting system that incorporates the ability for the voter to discern that their vote was counted while still protecting their voter privacy. Most importantly, this system does not rely on cryptography at all. Stating "Our democracy is too important," he simultaneously placed ThreeBallot in the public domain.
Bio from Wikipedia, the free encyclopedia. Photo by Ronald L. Rivest (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonReviews with images
-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I would agree that a pretty solid understanding of mathematics is required for this book, and I can see why someone coming from a typical undergraduate education in cs would find it difficult and intimidating to tackle this book. It definitely does not teach you how to program or the basics of object oriented design as it proceeds to teach you about structure and design of algorithms. I can also understand why someone hoping to simply get a job as a "programmer" or "software engineer" would not necessarily be well served by this book. The authors are very upfront on this note though, and specifically warn prospective students that they are not going to teach them how to "code" solutions to common cs problems. What they are going to teach them is the fundamentals of algorithm analysis and design. How valuable prospective students find this approach is going to depend entirely on what exactly they hope to do with their understanding of computer science. If you want to learn how to code and be paid to be a developer (not a bad line of work by any stretch of the imagination) you might want to look else where.
For someone coming from a mathematics background though (whether it's an applied field such as statistics or numerical analysis or a pure field like abstract algebra or analysis) this is an excellent introduction to the field of computer science. If you are coming from a math background the analysis and structure of algorithms as presented in this book will instantly click. For me personally I loved the fact that the underlining mathematical basis of cs did not get lost in details of coding or working within certain developmental environments like Eclipse. Again, probably not an ideal choice for someone looking to learn this particular subjects, but definitely a good choice for math majors (or prospective cs grad students).
Cormen's Algorithms book is highly regarded as one of the best algorithms book out there, and though I have no experience with any other algorithms texts, it's fairly obvious to me now why that is true. Cormen's book is mostly well-organized, is easily readable (especially with all the great pictures and examples!), and is best used as a workbook text. Pretty much all of the chapters rely on chapters previous to some degree, and the exercises especially reflect this behavior as many of them require you to you optimization learned in previous chapters to modify current algorithms. Overall, I have very few complaints, and this text has been one of my favorites throughout college.
My first complaint is that the text begins by throwing you in to the analysis of insertion sort before defining any notation or mathematics used to analyze the algorithm. While I understand that the idea is to introduce you to what algorithm analysis really is, the chapter felt more confusing than helpful. I would much rather the book started with background information first.
Secondly, the mathematical chapters are very brief and vague. Chapters 4 and 5 are particularly bad due to the lack of depth, explanation, and clarity. The examples are far from satisfactory, particularly those regarding probability and recurrences. While these chapters had excellent problem sets, I needed an external source to help me deal with cases not covered in the text. One example of a topic I had trouble with was solving for the number of levels a recurrence tree has. The book only presents trivial examples of this while the problem sets ask for significantly more work. One or two worked out examples, even if they were only included in the selected answers, would have been very helpful.
The last issue that I had with the book was the lack of explanation given in the analysis of specific algorithms. For example, the runtime analysis of Kruskal's minimum spanning tree algorithm felt far from intuitive. The author does not take enough time to explain where some analysis techniques came from and why they were used. Though many of the algorithms are discussed in enough detail, there are several more advanced algorithms which feel like they were thrown into the text without enough care.
Despite all these issues I've been very pleased with my purchase and the time I've invested in it. I would recommend the book to anyone with interest in algorithms. While some knowledge of basic mathematical analysis and probability theory would be helpful, it's pretty easy to get by without either of these. Though the explanation of some of the more technical parts of the book is lacking, the authors do a great job of translating complicated psuedo-code and notational necessities into something which is very easy to understand