Introduction
The word “algorithm” may seem intimidating at first, perhaps evoking thoughts of mathematical geniuses like Newton and Euclid. But at their core, algorithms are nothing more (nor less) than a sequence of steps designed to help us accomplish a task, and they’re at work around us every day: Your car manual’s step-by-step instructions for changing a flat tire, your mom’s secret birthday cake recipe, and your morning routine that gets you from bed to office are all algorithms. In programming, you trigger an algorithm every time you execute a binary search, sort an array, or parse a string. Of course, these are all very basic examples of algorithms, but they serve to illustrate the point that algorithms exist to solve problems in the quickest, most efficient, and best way. In fact, algorithms play an integral part in the rapid technological advancement we enjoy today.
For this mini ebook, I’ve chosen chapters from three Manning books that each look at algorithms from a different angle. The first explores evolutionary algorithms, which take their cue from biological evolution to find time-tested solutions for difficult problems. Next, you’ll delve into k-d trees, a data structure helpful for organizing multidimensional data, designed specifically for solving nearest neighbor search. In the last chapter, you’ll discover the increasingly crucial part algorithms play in processing the ever-more massive amount of data that’s being generated and collected every day.
With these three chapters, you’ll get a good glimpse of the tip-of-the-algorithm-iceberg. If you’re inspired to dive deeper into algorithms, the three books I’ve featured here are all great places to start!