In my career as a software engineer, my job is always more a process of finding a particular solution in a particular context to solve a particular problem. Easy enough, right? Just have to have the right tools and the right parts to get from point A to point B.
Well, you don't always have an easy time finding the right tools or the right parts. That's why I'm always on the lookout for books that can provide not only a set of tools I can use, but also describes the context in which a particular tool should be used.
Algorithms are just one more tool in the toolbox for software engineers and people in other disciplines who write computer programs. The definition of an algorithm is simply a set of rules for solving a problem in a number of steps. When you were in school, teachers used algorithms (covertly or not) to provide a framework for solving problems in math, science, and even English.
In Algorithms in a Nutshell from O'Reilly, George T. Heineman, Gary Pollice, and Stanley Selkow provide not only a range of algorithms to choose from, but a methodology for finding the right one and testing it once you have it implemented.
In Part I, the authors explain why algorithms matter, ways to rate how a particular algorithm works in a particular context, and how to use patterns, languages, and algorithms together to solve a particular domain specific problem. Though the math in some cases was far above my head, readers with a firm grasp of statistics will have a better idea how to use some of the techniques and formulas to better apply these tools to their own problem domains.
Part II walks through six chapters describing six different categories of algorithms:
- Sorting
- Searching
- Graphing
- Path Finding
- Mapping Network Flow
- and Computational Geometry
Many of these algorithms have been around for a long time, such as the Quicksort, Bucket Sort, Binary and Binary Tree Search. But many others were quite new to me, such as the Graphing algorithm "All Pairs Shortest Path." Having never really needed path finding, network flow, or computational geometry algorithms, they were all new and interesting to me, but without an application to apply them to went over my head.







Article comments