<P> In mathematics and computer science, an algorithm (/ ˈælɡərɪðəm / (listen) AL - gə - ridh - əm) is an unambiguous specification of how to solve a class of problems . Algorithms can perform calculation, data processing and automated reasoning tasks . </P> <P> 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 . </P> <P> The concept of algorithm has existed for centuries and the use of the concept can be ascribed to Greek mathematicians, e.g. the sieve of Eratosthenes and Euclid's algorithm; the term algorithm itself derives from the 9th Century mathematician Muḥammad ibn Mūsā al'Khwārizmī, latinized' Algoritmi' . A partial formalization of what would become the modern notion of algorithm began with attempts to solve the Entscheidungsproblem (the "decision problem") posed by David Hilbert in 1928 . Subsequent formalizations were framed as attempts to define "effective calculability" or "effective method"; those formalizations included the Gödel--Herbrand--Kleene recursive functions of 1930, 1934 and 1935, Alonzo Church's lambda calculus of 1936, Emil Post's Formulation 1 of 1936, and Alan Turing's Turing machines of 1936--7 and 1939 . </P>

Set of rules for solving a mathematical or computational problem in finite number of steps