Programming pearls: Aha algorithms

  • Authors:
  • Jon Bentley

  • Affiliations:
  • Bell Lab, Murray Hill, NJ

  • Venue:
  • Communications of the ACM
  • Year:
  • 1983

Quantified Score

Hi-index 48.22

Visualization

Abstract

The study of algorithms has much to offer the practicing programmer. After just a course or two on the subject, students take away algorithms for solving many important tasks and design techniques for attacking new problems. Advanced algorithmic tools can have a substantial impact on software systems. Next month, for instance, we'll study a system in which algorithm design helped reduce development time by 170 staff-years.As important as such tools are, algorithms can have an impact on a more common level of programming. In his book aha! Insight (from which I shamelessly stole my title), Martin Gardner describes the type of contribution I have in mind: “a problem that seems difficult may have a simple, unexpected solution.” Unlike the advanced methods of the field, the aha! insights of algorithms don't come only after extensive study; they're available to any programmer willing to think seriously before, during, and after coding. But enough generalities, on to the problems!