Steven S. Skiena's book
The Algorithm Design Manual is different from all the other algorithm books I've read so far. Skiena's book makes you aware of three things:
- Optimize the algorithm instead of the implementation
- Choose proper data structures
- Recognize that many problems can be reduced to well-researched standard problems
At this point I can hear you saying "Gee sp, don't all algorithm books teach you that?". Maybe they do. All decent ones at least. But Skiena's book is different. All the other algorithm books I've read so far deal with the three points I mentioned only briefly in the introductory chapters. The rest of the books present implementations of algorithms. In Skiena's book the three points are the central theme of the book. The book teaches you how to extract the relevant information from a problem, how to transform a given problem into a well-researched problem, how to select the best data structure for the job and how to really improve algorithms. Implementations of actual algorithms or data structures were omitted. Skiena's book might be the only algorithm book that doesn't present any actual algorithm code (there are a few tiny algorithms given in pseudo-code but not many). That's what makes the book so different and yet so valuable.
Continue reading "Book review: The Algorithm Design Manual"