Part of
keywords: [algorithms, data structures, computer science, programming, software engineering]
The Algorithm Design Manual
Introduction to Algorithm Design
-
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.
-
Reasonable-looking algorithms can easily be incorrect. Algorithm correctness is a property that must be carefully demonstrated
-
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.
-
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.