Customer Reviews


40 Reviews
5 star:
 (25)
4 star:
 (7)
3 star:
 (4)
2 star:
 (2)
1 star:
 (2)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


74 of 82 people found the following review helpful:
5.0 out of 5 stars THE book for learning the theory and implementation of algorithms
An algorithm is nothing more than a set of computational steps that transform a specific input into a desired output. From that definition, there are plenty of books on the market that are "cookbooks" of algorithms and will enable you to do just that - transform specific inputs into outputs, complete with source code, and with no real depth of understanding of your own...
Published on November 7, 2009 by calvinnme

versus
252 of 262 people found the following review helpful:
3.0 out of 5 stars Great book but ....
First of all, this is the quintessential book on algorithms. If you want to learn, this is the book to get. The information in the book is awesome and it can make an excellent reference.

Students will need a very strong mathematical background and a strong arm to even think about picking up this book because the it is heavy (both physically and...
Published on December 5, 2009 by M. Leeper


‹ Previous | 1 2 3 4| Next ›
Most Helpful First | Newest First

252 of 262 people found the following review helpful:
3.0 out of 5 stars Great book but ...., December 5, 2009
By 
M. Leeper "ML" (Columbus, OH, USA) - See all my reviews
(REAL NAME)   
This review is from: Introduction to Algorithms (Hardcover)
First of all, this is the quintessential book on algorithms. If you want to learn, this is the book to get. The information in the book is awesome and it can make an excellent reference.

Students will need a very strong mathematical background and a strong arm to even think about picking up this book because the it is heavy (both physically and metaphorically). Mastery of discrete math is a must, graph theory, programming, and, combinatorics will also help.

With that said, this book falls short in one MAJOR area, explanations. Too often explanations are left out and left as exercises and there are no solutions to the exercises! Or details are replaced by ambiguous statements such as of "cleary, this works", or "it is easy to see that this ...". I get the concept of learning by doing, really I do, but there should be some kind of solutions so the student can CHECK his/her understanding of the material and sometimes the exercises are not about advanced aspects of a concept, sometimes it is the core material. Even if the solution manual only contained a simple answer without the work. Not only would it help tremendously but the purpose of doing the exercises would be preserved; that is the student getting his/her "hands dirty" and working out a problem.

For the love everything good and pure in this universe, I really wish writers of mathematical books would stop using statements like "clearly this works" or "it is easy to see", "it is obvious" etc. While that may be true for you and your brilliant circle of colleagues, everything is not always clear and obvious to your readers. Save all of that ambiguity for your research paper.


A great book should deliver in two areas; it should challenge and it should inform. The challenge is there, no doubt. However in some ways it fails to inform the reader. The authors should really think about releasing a students solution manual to help students learn better. I take away two stars for the reasons stated about.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


74 of 82 people found the following review helpful:
5.0 out of 5 stars THE book for learning the theory and implementation of algorithms, November 7, 2009
This review is from: Introduction to Algorithms (Hardcover)
An algorithm is nothing more than a set of computational steps that transform a specific input into a desired output. From that definition, there are plenty of books on the market that are "cookbooks" of algorithms and will enable you to do just that - transform specific inputs into outputs, complete with source code, and with no real depth of understanding of your own required. However, to be a computer scientist versus a programmer, you need to know what makes an efficient algorithm, why is a particular algorithm efficient, what kinds of common data structures are involved in various computing problems, how to traverse those data structures efficiently, and a notation for analyzing various algorithms. This book will help you learn all of that. The study of the theory of algorithms is not to be undertaken lightly, and I don't recommend you attempt to self-study such a complex subject with such strong mathematical underpinnings. In fact, this book is really aimed at graduate computer science students and is often on the reading list of Ph.D. qualifying examinations in that field.

For students of graph theory, you might find your knowledge solidly supplemented by the material in chapters 22 through 26 on graph algorithms. The last section of the book, "Selected Topics", goes over various specific algorithms from many fields using the knowledge of algorithm design and analysis you have learned up to this point in the book. Throughout, the text is very clear, and there are plenty of instructive diagrams and pseudocode.

One of the most interesting parts of the book is the chapter on NP-completeness. This is the study of problems for which no efficient algorithm has ever been found. These problems are interesting for two reasons. The first being that even though an efficient algorithm has never been found, there is no proof that one cannot exist. Second, if an efficient algorithm exists for one of them, then an efficient algorithm exists for all. Thus, if you are ever called upon to write an efficient algorithm for an NP-complete problem, you will be involved in a long fruitless search if you do not recognize the problem as NP-complete. If you can show the problem is NP-complete, you can go about producing an algorithm that gives a good solution, but not the best possible solution. This kind of knowledge is what separates a computer scientist from a mere programmer, and is one of many reasons to study this book's contents. I highly recommend this book to anyone who truly wants to be called a computer scientist.

To get the most from this book you should already be familiar with discrete mathematics and combinatorics, as this book makes heavy use of these subjects. Because this book contains no solutions to any of the exercises, might I suggest "Problems on Algorithms" by Ian Parberry as a companion to this book. It has a little bit of tutorial and a lot of exercises, many unsolved, but some with hints and others with solutions. Also, for more basic material, you might look at "Schaum's Outline of Discrete Mathematics". It's very inexpensive and can almost stand alone as a tutorial on the mathematics you need to know to succeed at understanding this book. The table of contents is not shown for this third edition of the book, so I supply that information next:

Table of Contents
Preface
I Foundations
1 The Role of Algorithms in Computing
2 Getting Started
3 Growth of Functions
4 Recurrences
5 Probabilistic Analysis and Randomized Algorithms
II Sorting and Order Statistics
6 Heapsort
7 Quicksort
8 Sorting in Linear Time
9 Medians and Order Statistics
III Data Structures
10 Elementary Data Structures
11 Hash Table
12 Binary Search Trees
13 Red-Black Trees
14 Augmenting Data Structures
IV Advanced Design and Analysis Techniques
15 Dynamic Programming
16 Greedy Algorithms
17 Amortized Analysis
V Advanced Data Structures
18 B-Trees
19 Binomial Heaps
20 Fibonacci Heaps
21 Data Structures for Disjoint Sets
VI Graph Algorithms
22 Elementary Graph Algorithms
23 Minimum Spanning Trees
24 Single-Source Shortest Paths
25 All-Pairs Shortest Paths
26 Maximum Flow
VII Selected Topics
27 Sorting Networks
28 Matrix Operations
29 Linear Programming
30 Polynomials and the FFT
31 Number-Theoretic Algorithms
32 String Matching
33 Computational Geometry
34 NP Completeness
35 Approximation Algorithms
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


32 of 35 people found the following review helpful:
4.0 out of 5 stars Everything About Algorithms, December 6, 2009
By 
Amazon Verified Purchase(What's this?)
This review is from: Introduction to Algorithms (Hardcover)
I have studied algorithms using several books, and this is by far the best. It is comprehensive (twice as thick as the average book), you can find everything you are looking for. It is pedagogical too, always starts with simpler problems. I have also used the first edition for some time, and can say that this one is much improved as a result of feedback from instructors and students. Everything from pseudocode to page layout has been touched in some way, and made easier to read and understand for the student.

The only negative thing about this book is the lack of solutions to exercises. The authors must have realized the importance of this. They published a small subset of solutions on the web, but that is inadequate.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


20 of 23 people found the following review helpful:
2.0 out of 5 stars Magisterial, and impenetrable, August 29, 2011
By 
Clinton Staley (Atascadero, CA USA) - See all my reviews
(REAL NAME)   
This review is from: Introduction to Algorithms (Hardcover)
I'm a professor of Computer Science at a respected teaching university, and have been the principal instructor of our introductory algorithms class for the past several years. I used Cormen (doesn't *everyone*?) for a year or two, but have finally relegated it to recommended-text status.

On the plus side, the text is, as my review title says, magisterial. It covers the field comprehensively and authoritatively. When one of the authors is the "R" in RSA, and others are well-known names, you can count on the text's expertise and accuracy. I've never found an error in this text.

BUT.... The pedagogy needs work. Explanations tend to jump too quickly to pure mathematical notation, and there are often insufficient concrete examples. The pseudocode has one-letter variable names that appear at times to be randomly generated :). At least the latest edition fixes what was a baffling indentation style. If you took a sample of 100 CS undergrads and asked them to learn algorithms principally from this text, I'd venture a guess that only the 10 brightest could do so. And even they'd be baffled at times.

I apologize for having to offer such an "emperor is naked" review to such a highly respected work, but it's time to consider more carefully pedagogical texts in the undergrad market.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful:
4.0 out of 5 stars Very enjoyable, but confusing at times, May 5, 2011
Amazon Verified Purchase(What's this?)
This review is from: Introduction to Algorithms (Hardcover)
Algorithms is the type of subject that can make you put your hand on your head in frustration due to the technical nature of the subject. This book does a terrific job of demystifying topics and giving you a clear and concise notion of the fundamentals which make the algorithm work. In turn, the authors have gotten me to love learning about algorithms. Every chapter is a new challenge, and the authors are there to help guide you the whole way.

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
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful:
5.0 out of 5 stars The best textbook/reference on algorithms, July 1, 2010
This review is from: Introduction to Algorithms (Hardcover)
I used this book as a text when I taught algorithms to computer science majors and the only regret I ever had was that there was not enough time to cover all of it. With over 1,100 pages of material, trying to squeeze it all into one semester was unreasonable. Furthermore, I never had a student complain about the content, although being students, they did complain about the (physical) weight. My students found it readable; the expressions of the algorithms are in mathematical notation and a standard pseudocode. Generally speaking, a background in discrete mathematics, specifically summation notation, is needed throughout. Other necessary material to help in understanding specific sections is graph theory, linear algebra, set theory, combinatorics, probability and number theory.
Choosing an algorithm in theory versus choosing one in practice is often contradictory and that is an occasional point of emphasis in this book. Some algorithms are extremely fast nearly all the time yet incredibly slow in some pathological conditions. Many of my students programmed for an avionics company and their background led to some very informative conversations. In their work, predictability of the speed of execution is often more critical than being fast and some generally fast algorithms are banned.
The breadth of coverage of algorithms is extensive, the chapter headings are:

*) The role of algorithms in computing
*) Getting started
*) Growth of functions
*) Divide-and-conquer
*) 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
*) Fibonacci heaps
*) van Emde Boas trees
*) Data structures for disjoint sets
*) Elementary graph algorithms
*) Minimum spanning trees
*) Single-source shortest paths
*) All-pairs shortest paths
*) Maximum flow
*) Multithreaded algorithms
*) Matrix operations
*) Linear programming
*) Polynomials and the FFT
*) Number-theoretic algorithms
*) String matching
*) Computational geometry
*) NP-completeness
*) Approximation algorithms

The depth of the explanations is great enough that this book can be used as a reference and resource for programmers that need to learn the performance details of an algorithm. Coded implementations of most algorithms are available online but when you need to thoroughly understand an algorithm, if it is found in this book then with effort, it can be understood.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful:
4.0 out of 5 stars A Step Forward, A Step Backwards, August 2, 2011
Amazon Verified Purchase(What's this?)
This review is from: Introduction to Algorithms (Hardcover)
The CLRS Algorithms book is the definitive text on the subject, and for good reason. If you are using this book in a university setting, look no futher - it's excellent, and quite reasonably priced for a textbook. I have no true qualms with the content. That said, there are several flaws with this text:

1) The text provides few examples and relies far too much on its problems as a teaching aid. There is no solution manual available for people trying to teach or refresh themselves from this text, or for students looking to check their work.

2) Having owned the First Edition, dealt with the Second Edition, and now owned the Third Edition, I can say that physically, the Third Edition is a step backwards. The binding feels considerably more fragile.

That being said, this is still an excellent book and is highly recommended.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 2 people found the following review helpful:
5.0 out of 5 stars Fantastic, Comprehensive Algorithms Textbook, February 27, 2010
Amazon Verified Purchase(What's this?)
This review is from: Introduction to Algorithms (Hardcover)
This textbook isn't just a textbook for an algorithms class. No matter what the project, if you need details on any sort of data structure or algorithm, this book has details on it. It is very theoretical, but extremely comprehensive. Whether this book is required, recommended, or not even suggested at all, I cannot emphasize how helpful it will be. It is a textbook that will outlive the course by a very long time.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 8 people found the following review helpful:
5.0 out of 5 stars One of the most complete books in the field of algorithms, October 7, 2010
This review is from: Introduction to Algorithms (Hardcover)
Books about algorithms can be divided into two big groups: Those that mainly explain common applied algorithms (sorting, number theory, graph problems, information retrieval, etc.) and another group that revolves around algorithm design techniques (divide and conquer, dynamic programming, greedy, etc.). One example of the latter is "Fundamentals of Algorithmics", by Brassard & Bratley. This book is more oriented towards common applied algorithms, but there are also interspersed chapters about the most common design techniques. This is important specially if you're engaged in an undergraduate course; ask your instructor first about the type of course (s)he is planning to teach.

Mathematical background

Algorithms are mathematics. While reading this book requires less mathematical knowledge and fluency than reading Knuth's "The Art of Computer Programming", you should have done a little programming before, and possibly have taken a course in elemental calculus (summations, products...) and discrete structures (sets, relations, graphs...). Don't worry if you don't remember all of this stuff, the appendices are excelent and cover this material concisely, in case you need it while reading the book.

Ease of reading

The book is designed in a way that it's easy to read from cover to cover, but you can also read only the individual chapters that interest you with no problem at all. Algorithms are described with pseudocode that is similar to modern procedural languages (Java, Pyton, C++...). They are explained both graphically and textually, in a step by step manner. This is invaluable when you are facing a rare of difficult algorithm.

Comprehensiveness

The book is more that 1000 pages long, and covers a lot of algorithms. One could say that the most important algorithms used in computing are in this book. There's also a part about basic and advanced data structures that could make a book on its own. It covers lots of material and perfectly fits with the style of the rest of the text.

Should I buy the third edition if I already have the second edition?

It's up yo you. To help you decide, the most prominent additions to the third edition are a chapter about parallel algorithms (very important for the current and future software engineers), new exercises and problems (please, try them because they will improve your thinking!), and better pseudocode.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful:
5.0 out of 5 stars A great algorithms book for computer scientists, November 17, 2011
This review is from: Introduction to Algorithms (Hardcover)
I was first introduced to an earlier edition of this book when I was a computer science grad student back in the early 90's. My wife use it as her primary algorithms textbook as an undergrad in computer science in the early 00's. When I was looking to bone up on algorithms this year, I picked it up again. It's every bit as relevant as it was 20 years ago.

There are a few books that are fantastic references for their area. This is the 'go to' book for me for fundamental computer science algorithms. I've got a PhD now and I still use this as a distilled location for algorithm options, if I don't know the exact algorithm name to look it up online (e.g. wikipedia).

Like any textbook, parts of it are dense. Heck, all of it is dense. But, I find it readable if you invest the time in it.

Highly recommend this as a reference work for your CS library.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 3 4| Next ›
Most Helpful First | Newest First

This product

Introduction to Algorithms
Introduction to Algorithms by Thomas H. Cormen (Hardcover - July 31, 2009)
Used & New from: $49.98
Add to wishlist See buying options