Creating robust software requires the use of efficient algorithms, but programmers seldom think about them until a problem occurs. Algorithms in a Nutshell by George Heineman, Gary Pollice, and Stanley Selkow, describes existing algorithms for solving a variety of problems, and helps you select and implement the right algorithm for your needs — with just enough math to let you understand and analyze algorithm performance.
“We intend this book to be used frequently by experienced programmers looking for appropriate solutions to their problems,” write the authors. “Here you will find solutions to the problems you must overcome as a programmer veery day. You will learn what decisions lead to an improved performance of key algorithms that are essential for the success of your software applications. You will find real code that can be adapted to your needs and solution methods that you can learn.”
Heineman, Pollice, and Selkow rigorously followed a set of principles as they designed, implemented and wrote this book. These were:
- Use real code, not pseudocode
- Separate the algorithm from the problem being solved
- Introduce just enough mathematics
- Support mathematical analysis empirically
“If these principles are meaningful to you,” they add, “then you will find this book useful.”
With its focus on application, rather than theory, Algorithms in a Nutshell provides efficient code solutions in several programming languages that you can easily adapt to a specific project. Each algorithm is presented in the style of a design pattern that includes information to help you understand why and when the algorithm is appropriate. With this book, you will:
- Solve a particular coding problem or improve on the performance of an existing solution
- Quickly locate algorithms that relate to the problems you want to solve, and determine why a particular algorithm is the right one to use
- Get algorithmic solutions in C, C++, Java, and Ruby with implementation tips
- Learn the expected performance of an algorithm, and the conditions it needs to perform at its best
- Discover the impact that similar design decisions have on different algorithms
- Learn advanced data structures to improve the efficiency of algorithms
With Algorithms in a Nutshell you’ll learn how to improve the performance of key algorithms essential for the success of your software applications.