*The Art of Computer Programming*and thought, "Surely it can be easier than that!",

*Algorithms in a Nutshell*is for you. The authors provide a handbook of the most commonly used algorithms for a large variety of problems. There are not many areas untouched by the algorithms and wisdom shared by the authors in this book.

### Guiding Principles

- Use real code, not pseudocode
- Separate the algorithm from the problem being solved
- Introduce just enough mathematics
- Support mathematical analysis empirically

### Algorithms from the Ground Up

Of the three sections of the book, the first justifies the topic and lays the mathematical basis for the rest of the book. The matter of dealing with problems based on patterns is also dealt with.

In the second section of the book, each chapter provides a discussion of several related algorithms. These discussions are succinct but not terse and are heavily illustrated. The authors tend to get the right balance to make the book very helpful without being either wordy or cryptic. Topics covered include sorting, searching, graphing, path finding, network flow, and computational geometry.

### When All Else Fails

- 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
- If no solution is evident, reduce your problem to another problem that has a solution
- Writing algorithms is hard - testing algrotithms is harder