In mathematics and computer science, a) is an unambiguous specification of how to solve a class of problems. Algorithms can perform calculation, data processing and automated reasoning tasks.

An algorithm is an effective method that can be expressed within a finite amount of space and time and in a well-defined formal language^{} for calculating a function.^{} Starting from an initial state and initial input (perhaps empty),^{} the instructions describe a computation that, when executed, proceeds through a finite^{} number of well-defined successive states, eventually producing “output”^{} and terminating at a final ending state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as randomized algorithms, incorporate random input.^{}