Hacker News new | ask | show | jobs
by meadori 3811 days ago
Having owned and read through "Introduction to Algorithms" for years I agree that it is a good book. However, recently I have been feeling like it is recommended way too often without thought.

It is not the best when it comes to explaining things in an intuitive manner. It is a great reference book with lots of algorithms and proofs.

In recent years I have been drawn more towards Levitin's "Introduction to the Design and Analysis of Algorithms".

Anyone else have similar feelings about "Introduction to Algorithms"?

8 comments

I second you. I have found Steven Skiena's "The Algorithm Design Manual"[1] to be a great book in this regard. Of course, like you say, CLRS remains an excellent reference.

[1]: http://www.algorist.com/

I think Skiena and CLRS are complementary, each compensating well for the limitations of the other. If you were going to have exactly two algorithms books, I'm not sure I can think of a better pair.
It seems like a lot of academics and hardcore computer science enthusiasts love CLRS. But I remember taking an algorithms course just a few months ago and that book was almost unreadable. A lot of my classmates shared the same sentiment. The math was dense and the explanations were unclear. Juggling several other CS classes that quarter, nobody had the time to work through it. Maybe I wasn't smart or patient enough to understand CLRS, but it just never made much sense to me, especially on more advanced topics of algorithm design.

I loved The Algorithm Design Manual. Used it for my class as well as preparing for technical interviews. Although looking back at it now, TADM is great for learning algorithms (quickly) for the very first time, while CLRS is a good reference manual once you already understand how they work.

Absolutely. My favorite book is "Algorithms" by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani.
Yes, I also use CLR(S) as a reference, when I need to quickly look up an algorithm. But it doesn't really explain how to come up with algorithms - for that, my favorite is Udi Manber's "Introduction to Algorithms: A Creative Approach". It's ridiculously pricey though.
I came here to recommend Manber's book also. It emphasizes developing algorithms and their correctness proofs together -- a great technique. The design and the proof naturally inform each other. This approach ought to be better known.
It's a bit light, but in college, I was a fan of Algorithms in a Nutshell (O'Reilly). http://amzn.com/059651624X
I use CLRS more as a reference than anything else. If I need to quickly review some data structures or algorithms for an interview, I'll look up the relevant chapters in it.

If I really want to understand something like max flow-min cut, I'll turn to "Algorithm Design" by Kleinberg and Tardos, which often has a much more intuitive explanation for concepts(imo).

I feel that way about "Don't Make Me Think". It was a good summary of design principles, but even as a beginner I didn't feel as if I got much new information out of it. It was pretty lite. It's overrecommended, I think.
For me CLRS was a book that explained concepts in an easy to absorb fashion. For example the dynamic programming chapter is top notch.

While the "War Story" section in Skiena's book gave a great perspective of application of the theory.