structural:reformatting, quality:correction
Definition

One informal definition is "a set of rules that precisely defines a sequence of operations", which would include all computer programs (including programs that do not perform numeric calculations), and (for example) any prescribed bureaucratic procedure or cook-book recipe. In general, a program is an algorithm only if it stops eventually —even though infinite loops may sometimes prove desirable. Boolos, Jeffrey & 1974, 1999 define an algorithm to be a set of instructions for determining an output, given explicitly, in a form that can be followed by either a computing machine or a human who could only carry out specific elementary operations on symbols.

The concept of algorithm is also used to define the notion of decidability —an idea that is central for explaining how formal systems come into being starting from a small set of axioms and rules. In logic, the time an algorithm requires to complete cannot be measured, as it is unrelated to the customary physical dimension. Such uncertainties that characterize ongoing work stem from the unavailability of a definition of algorithm that suits both concrete (in some sense) and abstract usage of the term.

Most algorithms are intended to be implemented as computer programs. However, algorithms are also implemented by other means, such as in a biological neural network (for example, the human brain implementing arithmetic or an insect looking for food), in an electrical circuit, or a mechanical device.