The manuscript starts with the phrase Dixit Algorizmi ('Thus spake Al-Khwarizmi'), where "Algorizmi" was the translator's Latinization of Al-Khwarizmi's name. About 825, al-Khwarizmi wrote an Arabic language treatise on the Hindu–Arabic numeral system, which was translated into Latin during the 12th century. Muḥammad ibn Mūsā al-Khwārizmī was a mathematician, astronomer, geographer, and scholar in the House of Wisdom in Baghdad, whose name means 'the native of Khwarazm', a region that was part of Greater Iran and is now in Uzbekistan. The word algorithm is derived from the name of the 9th-century Persian mathematician Muḥammad ibn Mūsā al-Khwārizmī, whose nisba (identifying him as from Khwarazm) was Latinized as Algoritmi ( Arabized Persian الخوارزمی c. Arabic mathematicians such as al-Kindi in the 9th century used cryptographic algorithms for code-breaking, based on frequency analysis. Greek mathematicians later used algorithms in 240 BC in the sieve of Eratosthenes for finding prime numbers, and the Euclidean algorithm for finding the greatest common divisor of two numbers. Arithmetic algorithms, such as a division algorithm, were used by ancient Babylonian mathematicians c. The concept of algorithm has existed since antiquity. 11.6 Mathematics during the 19th century up to the mid-20th century.11.5 Mechanical contrivances with discrete states.11.3 Manipulation of symbols as "place holders" for numbers: algebra.11.2 Discrete and distinguishable symbols.11 History: Development of the notion of "algorithm".7.4 Measuring and improving the Euclid algorithms.7.2.3 An elegant program for Euclid's algorithm.7.2.2 An inelegant program for Euclid's algorithm.7.2.1 Computer language for Euclid's algorithm.The transition from one state to the next is not necessarily deterministic some algorithms, known as randomized algorithms, incorporate random input. 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. Īs 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. In contrast, a heuristic is an approach to problem solving that may not be fully specified or may not guarantee correct or optimal results, especially in problem domains where there is no well-defined correct or optimal result. Algorithms are used as specifications for performing calculations, data processing, automated reasoning, automated decision-making and other tasks. In mathematics and computer science, an algorithm ( / ˈ æ l ɡ ə r ɪ ð əm/ ( listen)) is a finite sequence of well-defined instructions, typically used to solve a class of specific problems or to perform a computation.
Ada Lovelace's diagram from "note G", the first published computer algorithm