11Algorithms

Although greed is considered one of the seven deadly sins, it turns out that greedy algorithms often perform quite well.

—Stuart Russell

Heuristic is an algorithm in a clown suit. It's less predictable, it's more fun, and it comes without a 30-day, money-back guarantee.

—Steve McConnell

What You Will Learn in This Chapter:

  • Algorithm categories
  • Algorithm examples
  • How to decide which algorithms are better than others

An algorithm is simply a recipe for doing something. In fact, a recipe is an algorithm for cooking a particular food. It contains a sequence of steps that, if followed correctly, produces a culinary masterpiece. (Or if followed by most of us, produces something that is probably edible and hopefully won't poison us.)

Software algorithms are methods for making the computer produce some result. For example, Google uses algorithms to rank web pages, to determine which pages to display first when you type “algorithms” into the search bar, and to list the most profitable places to insert advertising on the web pages that you view. It even uses algorithms to figure out what your queries mean. When you type “did gyre and gimble in the wabe” into the search bar, some algorithm needs to somehow deduce that this is part of Lewis Carroll's poem “Jabberwocky” and then display relevant pages.

This chapter provides an extremely brief introduction to software algorithms. It explains some of the major categories of algorithmic approaches, describes some examples, ...

Get Beginning Software Engineering, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.