Part III provides two chapters to help when you've exhausted the other algorithms but still haven't quite found "the one."
"When All Else Fails" provides ways to vary your approach and perhaps use a conglomeration of approaches to achieve results when a single algorithm might not work.
And in the "Epilogue" the authors provide a great set of principles to help guide selecting an appropriate algorithm.
- Know Your Data
- Decompose the Problem into Smaller Problems
- Choose the Right Data Structure
- Add Storage to Increase Performance
- If No Solution is Evident, Construct a Search
- or If No Solution is Evident, Reduce Your Problem to Another Problem that Has a Solution
- and Writing Algorithms is Hard - Testing Algorithms is Harder
Overall, this is a great book for developers looking for more tools in their arsenals. As you might suspect, this is not really a book to read cover to cover unless it's for a class. But it provides a clear and well laid out approach to some of the many algorithms that exist today in computer programming. It isn't an exhaustive list, but it certainly provides a great cross-section from which you could continue your search.
I, for one, am happy this book is now on my shelf beside some of my other computer science references on data structures and design patterns. It's a welcome addition to my box of tools.
Be sure to check it out at your favorite bookstore or at Amazon!








Article comments