Part of

Computer Science

keywords: [algorithms, data structures, computer science, programming, software engineering]

The Algorithm Design Manual

Introduction to Algorithm Design

  1. There is a fundamental difference between algorithms, procedures that always produce a correct result, and heuristics, which may usually do a good job but provide no guarantee of correctness.

  2. Reasonable-looking algorithms can easily be incorrect. Algorithm correctness is a property that must be carefully demonstrated

  3. An important and honorable technique in algorithm design is to narrow the set of allowable instances until there is a correct and efficient algorithm. For example, we can restrict a graph problem from general graphs down to trees, or a geometric problem from two dimensions down to one.

  4. The heart of any algorithm is an idea. If your idea is not clearly revealed when you express an algorithm, then you are using too low-level a notation to describe it.

Algorithm Construction