As an effective method, an algorithm 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.
set of rules for solving a mathematical or computational problem in finite number of steps
an algorithm