4 ms·
I don't think "scathing" is the appropriate word here. It has 4.3 stars after 80 reviews, which seems pretty good to me. In any case, to answer your question,
by jlarocco 12y ago
I don't think "scathing" is the appropriate word here. It has 4.3 stars after 80 reviews, which seems pretty good to me.
In any case, to answer your question, I read the book a few years ago and thought it was really good. I don't remember there being many mistakes, and I didn't mention any in my review on Amazon, but I may have just not noticed.
It's definitely my favorite algorithms book, because it's more practical than books like Intro to Algorithms and TAOCP. A large portion of those books are dedicated to proving theorems and big-O run times, and things like that. This book skips over most of the proving and math, tells you what the big-O run time is, gives an implementation in C, walks through the algorithm in a way that actually explains what it's doing, and points to other resources for the deeper math.
If I needed to implement an algorithm, I'd grab this book. If I was curious about the math behind it, I'd grab TAOCP or Intro to Algorithms.
- joshvm 12y agoPerhaps some bias from the Amazon UK page, fewer reviews and the bad ones are at the top. I think a good example of this problem is Numerical Recipes. It's got a 4.5 in Amazon UK, slightly lower in Amazon US. Many people agree that it's not a good book - the main issue is that the authors apparently have little expertise in the areas they're professing to claim expertise in. http://www.stat.uchicago.edu/~lekheng/courses/302/wnnr/nr.html http://www.stat.uchicago.edu/~lekheng/courses/302/wnnr/nr.ht... I'm sure Skiena knows his stuff, so that doesn't worry me, but it's entirely possible that people miss the mistakes. I'd just like to know why people gave such bad reviews.
- sytelus 12y agoIt appears that lot of people consider math in CS book as optional and think it's just there to make book look more serious. I actually LOVE having math in CS books. Without math you only know what is the "fact", but with math you can understand why it is the fact. On the other end, CLRS is far from perfect. My two issues with CLRS are: 1. Many critical topics are missing entirely while lot of non-critical stuff have gotten in to. There is a discussion started out by Professor Corman at Quora for suggestions for 4th edition here: http://www.quora.com/As-we-start-planning-the-next-edition-of-Introduction-to-Algorithms-CLRS-what-should-we-add-and-what-should-we-remove http://www.quora.com/As-we-start-planning-the-next-edition-o... 2. CLRS doesn't often try to make you understand the topic or algorithm. For example, for BST it will just say this is how you find successor node and it's entirely your job to think why this is the best way or why other alternatives won't be good. The way I deal with this is stop reading after chapter introduction and think about for a while how I would have solved problem and then read explanation in the book. This often illuminates subtle points of algorithms. I ended up annotating huge swath of text in my own PDF copy.
- sysk 12y agoFor anyone else wondering, CLRS refers to the "Introduction to Algorithms" book.
- justin66 12y agoOne of dozens to use that in the title. Hence the reference to the author's names.
- jlarocco 12y agoPersonally, reading through a bunch of math doesn't help me understand how an algorithm is working. I've always found it far easier to scan through some psuedo-code and read a few paragraphs explaining it. At this point, I can usually look at the loops, recursive calls, and "structure", and get a pretty good idea of how it's working, what it's big-O run time would be, and why. Full blown formal proofs and theorems just don't help my understanding. I agree the math is important for research and writing papers, and proving one algorithm is better than another, but for practical purposes (i.e. actually implementing an algorithm in real code) it's just not very helpful. And the reality is that most people learning about algorithms are going to spend a lot more time implementing algorithms than they will writing papers and doing algorithm research, so I'm not sure a math heavy book like CLRS is really the best undergraduate text.
- jules 12y agoProofs are a means to understanding a topic, not an end in itself. In CS there is often a tendency to do trivial proofs in painstaking detail, because there's a feeling that you need a certain amount of math to be taken seriously. The purpose of a proof is to convey understanding. In most cases an intuitive explanation with pictures & text is much more efficient at that than a formal proof.