Take it from someone who tried this path and failed. In algorithms, the long path is the shortest path.
If I were advising someone on how to go about learning algorithms today, I would ask him to first learn the basics of proofs ("The Hsskell Road to Logic Maths and Programming" by Doets and Van ejck is a good book as is Velleman's "How To Prove It"), then work through (at least) the first three chapters of Knuth et al's "Concrete Mathematics" - to get a handle on recurrences - and then tackle "Introduction to Algorithms" , probably supplemented by Skiena's "Algorithm Design Manual".
Avoiding the "academic" parts is (imho) a big mistake. As with compilers, the core of algorithms is "academic" and you can't avoid that (imho).
And once you get your head around proofs etc you may find this aspect a lot of fun. I certainly did.
my 2 cents. fwiw.
Thank you (all of you). Though I think this was the answer I was looking for.
As someone else mentioned, you might like Sedgewick's books, but it's hard to tell without knowing what your criteria are.
There are certainly less dense introductions to the subject, but Cormen is the classic that you'll see on every good programmer's shelf (and they even read it, too!)
Edit -- "Data Structures and Algorithm Analysis" by Mark Allen Weiss is an example of a common, less-dense introductory text. It's actually not bad, given its intent.
http://projects.csail.mit.edu/clrs/
Google Books: http://books.google.com/books?id=NLngYyWFl_YC&dq=&pg...
Though having the draft is quite nice...Thank you
Yes, it certainly gives you get a sense of their approach to the subject (as one of Amazon reviewers said it's not a substitute for CLRS, but a good supplement).
It might be good to look into the mathematical side of the algorithms though, so that you know how they work inside. This way, you can manipulate the algorithms and fine tune it to something you want later on.
If you're not familiar with The Art of Computer Programming ("TAOCP"), it is an unreadable dense and heavily theoretical treatment of much of the fundamental data structures and algorithms in CS. It's definitely a classic, but I wouldn't try to learn from it if I wanted to be 'practical'. TAOCP is much worse than Intro to Algorithms in readability and practicality.
The most practical use for TAOCP is to display it prominently on your bookshelf to impress your colleagues. :P
Yes, TAOCP is comprehensive and thorough. It's a useful resource, but pedantic and difficult.
Or is it to hard for a beginner?
Also, none of the books recommended here fall into the "Learn Blub in 21 Days" category.
The only algorithms I use regularly at a boring blub coding job is quicksort and binary search. The only data structures I use are hashes, arrays, and binary trees. Other niche data structures like tries, Bloom filters, etc. are useful sometimes but 90% of the time it's a very small handful of techniques you're using.