My recommendation for mathsy people is two very different books: Skiena, recommended above, and “Introduction to algorithms” by Cormen, Leiserson, Rivest, and Stein. Skiena is informal, discursive, and strategic. CLRS is formal, mathematical, and tactical. They complement each other nicely.
[EDITED to add: CLRS and Sedgewick are quite similar in style and content. I find CLRS more rigorous and analytical, which is good in a complement to Skiena. Personally I’d prefer CLRS even without Skiena, but I can see why others might not. I should also say that I haven’t seen the latest edition of either book, and that I have a copy of CLRS but not of Sedgewick, which I therefore don’t know as well and may be being unfair to.]
Seconded; that’s the book I learned from, and would have been my runner-up recommendation. In particular, its pictures are excellent, and there are loads of them.
For anyone with a visual thinking process, the diagrams are invaluable. Seeing the nodes layed out spatially makes it really easy to understand how the algorithms work any why they achieve the performance they do.
I’ve found Sedgewick’s “Algorithms in ” to be a great introductory and comprehensive textbook for this stuff.
My recommendation for mathsy people is two very different books: Skiena, recommended above, and “Introduction to algorithms” by Cormen, Leiserson, Rivest, and Stein. Skiena is informal, discursive, and strategic. CLRS is formal, mathematical, and tactical. They complement each other nicely.
[EDITED to add: CLRS and Sedgewick are quite similar in style and content. I find CLRS more rigorous and analytical, which is good in a complement to Skiena. Personally I’d prefer CLRS even without Skiena, but I can see why others might not. I should also say that I haven’t seen the latest edition of either book, and that I have a copy of CLRS but not of Sedgewick, which I therefore don’t know as well and may be being unfair to.]
Seconded; that’s the book I learned from, and would have been my runner-up recommendation. In particular, its pictures are excellent, and there are loads of them.
For anyone with a visual thinking process, the diagrams are invaluable. Seeing the nodes layed out spatially makes it really easy to understand how the algorithms work any why they achieve the performance they do.