- Any well-defined procedure describing how to carry out a particular task
- 1990: Cormen, Leiserson, and Rivest, Introduction to Algorithms: page 1. Cambridge, MA, The MIT Press, 1999 (23rd printing) - Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output.
The Algorithm wiki is a repository of algorithms. This does not mean we gather code-snippets or complete (sections of) programs. Rather, we provide the building blocks to programmers for them to create or use in their own implementations. This is more than simply a programmer's resource, however: it is a place where we look closer at the way we do things, and how we can make computers do things, and how we can make algorithms work as neatly and efficiently as possible.
This is reflected in the basic setup of a page in this wiki that details an algorithm. It first introduces the algorithm using quasi-code or plain English to describe it's workings. Then follows a short explanation of the idea or philosophy behind this algorithm, and the kind of situation it should be used in (and the kind of data it is suitable for). Before finally referencing related and/or algorithms used in the current one, translations of the algorithm in any programming language our contributors happen to know, can be placed.
Discussion of course is also possible, not only about the fundamental algorithm and it's workings, but also about the best translation of a given algorithm into various programming languages. Even development of new algorithms can take place here.
More then anything else, if algorithms are a programmer's tools, then this wiki is a tool shop.
In a shop, objects are created, maintained, mended, improved upon. This is what we do with algorithms.