Timeline Of Algorithms
   HOME

TheInfoList



OR:

The following timeline of algorithms outlines the development of
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
s (mainly "mathematical recipes") since their inception.


Medieval Period

* Before –
writing Writing is a medium of human communication which involves the representation of a language through a system of physically Epigraphy, inscribed, Printing press, mechanically transferred, or Word processor, digitally represented Symbols (semiot ...
about "
recipes A recipe is a set of instructions that describes how to prepare or make something, especially a dish of prepared food. A sub-recipe or subrecipe is a recipe for an ingredient that will be called for in the instructions for the main recipe. His ...
" (on cooking, rituals, agriculture and other themes) * c. 1700–2000 BC – Egyptians develop earliest known algorithms for
multiplying Multiplication (often denoted by the cross symbol , by the mid-line dot operator , by juxtaposition, or, on computers, by an asterisk ) is one of the four elementary mathematical operations of arithmetic, with the other ones being addition ...
two numbers * c. 1600 BC –
Babylonia Babylonia (; Akkadian: , ''māt Akkadī'') was an ancient Akkadian-speaking state and cultural area based in the city of Babylon in central-southern Mesopotamia (present-day Iraq and parts of Syria). It emerged as an Amorite-ruled state c. ...
ns develop earliest known algorithms for
factorization In mathematics, factorization (or factorisation, see American and British English spelling differences#-ise, -ize (-isation, -ization), English spelling differences) or factoring consists of writing a number or another mathematical object as a p ...
and finding
square root In mathematics, a square root of a number is a number such that ; in other words, a number whose ''square'' (the result of multiplying the number by itself, or  ⋅ ) is . For example, 4 and −4 are square roots of 16, because . E ...
s * c. 300 BC –
Euclid's algorithm In mathematics, the Euclidean algorithm,Some widely used textbooks, such as I. N. Herstein's ''Topics in Algebra'' and Serge Lang's ''Algebra'', use the term "Euclidean algorithm" to refer to Euclidean division or Euclid's algorithm, is an eff ...
* c. 200 BC – the
Sieve of Eratosthenes In mathematics, the sieve of Eratosthenes is an ancient algorithm for finding all prime numbers up to any given limit. It does so by iteratively marking as composite (i.e., not prime) the multiples of each prime, starting with the first prime n ...
* 263 AD –
Gaussian elimination In mathematics, Gaussian elimination, also known as row reduction, is an algorithm for solving systems of linear equations. It consists of a sequence of operations performed on the corresponding matrix of coefficients. This method can also be used ...
described by
Liu Hui Liu Hui () was a Chinese mathematician who published a commentary in 263 CE on ''Jiu Zhang Suan Shu (The Nine Chapters on the Mathematical Art).'' He was a descendant of the Marquis of Zixiang of the Eastern Han dynasty and lived in the state o ...
* 628 –
Chakravala method The ''chakravala'' method ( sa, चक्रवाल विधि) is a cyclic algorithm to solve indeterminate quadratic equations, including Pell's equation. It is commonly attributed to Bhāskara II, (c. 1114 – 1185 CE)Hoiberg & Ramchandani ...
described by
Brahmagupta Brahmagupta ( – ) was an Indian mathematician and astronomer. He is the author of two early works on mathematics and astronomy: the ''Brāhmasphuṭasiddhānta'' (BSS, "correctly established doctrine of Brahma", dated 628), a theoretical trea ...
* c. 820 –
Al-Khawarizmi Muḥammad ibn Mūsā al-Khwārizmī ( ar, محمد بن موسى الخوارزمي, Muḥammad ibn Musā al-Khwārazmi; ), or al-Khwarizmi, was a Persian polymath from Khwarazm, who produced vastly influential works in mathematics, astronomy ...
described algorithms for solving
linear equation In mathematics, a linear equation is an equation that may be put in the form a_1x_1+\ldots+a_nx_n+b=0, where x_1,\ldots,x_n are the variables (or unknowns), and b,a_1,\ldots,a_n are the coefficients, which are often real numbers. The coefficien ...
s and
quadratic equation In algebra, a quadratic equation () is any equation that can be rearranged in standard form as ax^2 + bx + c = 0\,, where represents an unknown (mathematics), unknown value, and , , and represent known numbers, where . (If and then the equati ...
s in his ''
Algebra Algebra () is one of the broad areas of mathematics. Roughly speaking, algebra is the study of mathematical symbols and the rules for manipulating these symbols in formulas; it is a unifying thread of almost all of mathematics. Elementary a ...
''; the word ''algorithm'' comes from his name * 825 –
Al-Khawarizmi Muḥammad ibn Mūsā al-Khwārizmī ( ar, محمد بن موسى الخوارزمي, Muḥammad ibn Musā al-Khwārazmi; ), or al-Khwarizmi, was a Persian polymath from Khwarazm, who produced vastly influential works in mathematics, astronomy ...
described the
algorism Algorism is the technique of performing basic arithmetic by writing numbers in place value form and applying a set of memorized rules and mathematical table, facts to the digits. One who practices algorism is known as an algorist. This positiona ...
, algorithms for using the
Hindu–Arabic numeral system The Hindu–Arabic numeral system or Indo-Arabic numeral system Audun HolmeGeometry: Our Cultural Heritage 2000 (also called the Hindu numeral system or Arabic numeral system) is a positional decimal numeral system, and is the most common syste ...
, in his treatise ''On the Calculation with Hindu Numerals'', which was translated into Latin as ''Algoritmi de numero Indorum'', where "Algoritmi", the translator's rendition of the author's name gave rise to the word
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
(
Latin Latin (, or , ) is a classical language belonging to the Italic branch of the Indo-European languages. Latin was originally a dialect spoken in the lower Tiber area (then known as Latium) around present-day Rome, but through the power of the ...
''algorithmus'') with a meaning "calculation method" * c. 850 –
cryptanalysis Cryptanalysis (from the Greek ''kryptós'', "hidden", and ''analýein'', "to analyze") refers to the process of analyzing information systems in order to understand hidden aspects of the systems. Cryptanalysis is used to breach cryptographic sec ...
and
frequency analysis In cryptanalysis, frequency analysis (also known as counting letters) is the study of the frequency of letters or groups of letters in a ciphertext. The method is used as an aid to breaking classical ciphers. Frequency analysis is based on t ...
algorithms developed by
Al-Kindi Abū Yūsuf Yaʻqūb ibn ʼIsḥāq aṣ-Ṣabbāḥ al-Kindī (; ar, أبو يوسف يعقوب بن إسحاق الصبّاح الكندي; la, Alkindus; c. 801–873 AD) was an Arab Muslim philosopher, polymath, mathematician, physician ...
(Alkindus) in ''A Manuscript on Deciphering Cryptographic Messages'', which contains algorithms on breaking
encryption In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can decip ...
s and
cipher In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure. An alternative, less common term is ''encipherment''. To encipher or encode i ...
s * c. 1025 –
Ibn al-Haytham Ḥasan Ibn al-Haytham, Latinized as Alhazen (; full name ; ), was a medieval mathematician, astronomer, and physicist of the Islamic Golden Age from present-day Iraq.For the description of his main fields, see e.g. ("He is one of the prin ...
(Alhazen), was the first mathematician to derive the formula for the sum of the fourth powers, and in turn, he develops an algorithm for determining the general formula for the sum of any
integral In mathematics Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented i ...
powers, which was fundamental to the development of
integral calculus In mathematics, an integral assigns numbers to Function (mathematics), functions in a way that describes Displacement (geometry), displacement, area, volume, and other concepts that arise by combining infinitesimal data. The process of finding ...
Victor J. Katz (1995). "Ideas of Calculus in Islam and India", ''Mathematics Magazine'' 68 (3), pp. 163–174. * c. 1400 –
Ahmad al-Qalqashandi Shihāb al-Dīn Abū 'l-Abbās Aḥmad ibn ‘Alī ibn Aḥmad ‘Abd Allāh al-Fazārī al-Shāfiʿī better known by the epithet al-Qalqashandī ( ar, شهاب الدين أحمد بن علي بن أحمد القلقشندي; 1355 or 1356 &ndash ...
gives a list of
cipher In cryptography, a cipher (or cypher) is an algorithm for performing encryption or decryption—a series of well-defined steps that can be followed as a procedure. An alternative, less common term is ''encipherment''. To encipher or encode i ...
s in his ''Subh al-a'sha'' which include both
substitution Substitution may refer to: Arts and media *Chord substitution, in music, swapping one chord for a related one within a chord progression * Substitution (poetry), a variation in poetic scansion * "Substitution" (song), a 2009 song by Silversun Pi ...
and transposition, and for the first time, a cipher with multiple substitutions for each
plaintext In cryptography, plaintext usually means unencrypted information pending input into cryptographic algorithms, usually encryption algorithms. This usually refers to data that is transmitted or stored unencrypted. Overview With the advent of comp ...
letter; he also gives an exposition on and worked example of
cryptanalysis Cryptanalysis (from the Greek ''kryptós'', "hidden", and ''analýein'', "to analyze") refers to the process of analyzing information systems in order to understand hidden aspects of the systems. Cryptanalysis is used to breach cryptographic sec ...
, including the use of tables of
letter frequencies Letter frequency is the number of times letters of the alphabet appear on average in written language. Letter frequency analysis dates back to the Arab mathematician Al-Kindi (c. 801–873 AD), who formally developed the method to break ...
and sets of letters which can not occur together in one word


Before 1940

* 1540 –
Lodovico Ferrari Lodovico de Ferrari (2 February 1522 – 5 October 1565) was an Italian mathematician. Biography Born in Bologna, Lodovico's grandfather, Bartolomeo Ferrari, was forced out of Milan to Bologna. Lodovico settled in Bologna, and he began his c ...
discovered a method to find the roots of a
quartic polynomial In algebra, a quartic function is a function (mathematics), function of the form :f(x)=ax^4+bx^3+cx^2+dx+e, where ''a'' is nonzero, which is defined by a polynomial of Degree of a polynomial, degree four, called a quartic polynomial. A ''qua ...
* 1545 –
Gerolamo Cardano Gerolamo Cardano (; also Girolamo or Geronimo; french: link=no, Jérôme Cardan; la, Hieronymus Cardanus; 24 September 1501– 21 September 1576) was an Italian polymath, whose interests and proficiencies ranged through those of mathematician, ...
published Cardano's method for finding the roots of a
cubic polynomial In mathematics, a cubic function is a function of the form f(x)=ax^3+bx^2+cx+d where the coefficients , , , and are complex numbers, and the variable takes real values, and a\neq 0. In other words, it is both a polynomial function of degree ...
* 1614 –
John Napier John Napier of Merchiston (; 1 February 1550 – 4 April 1617), nicknamed Marvellous Merchiston, was a Scottish landowner known as a mathematician, physicist, and astronomer. He was the 8th Laird of Merchiston. His Latinized name was Ioann ...
develops method for performing calculations using
logarithm In mathematics, the logarithm is the inverse function to exponentiation. That means the logarithm of a number  to the base  is the exponent to which must be raised, to produce . For example, since , the ''logarithm base'' 10 o ...
s * 1671 –
Newton–Raphson method In numerical analysis, Newton's method, also known as the Newton–Raphson method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valu ...
developed by
Isaac Newton Sir Isaac Newton (25 December 1642 – 20 March 1726/27) was an English mathematician, physicist, astronomer, alchemist, theologian, and author (described in his time as a "natural philosopher"), widely recognised as one of the grea ...
* 1690 –
Newton–Raphson method In numerical analysis, Newton's method, also known as the Newton–Raphson method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valu ...
independently developed by
Joseph Raphson Joseph Raphson (c. 1668 – c. 1715) was an English mathematician and intellectual known best for the Newton–Raphson method. Biography Very little is known about Raphson's life. Connor and Robertson give his date of birth as 1668 based on a 16 ...
* 1706 –
John Machin John Machin (bapt. c. 1686 – June 9, 1751) was a professor of astronomy at Gresham College, London. He is best known for developing a quickly converging series for pi in 1706 and using it to compute pi to 100 decimal places. History ...
develops a quickly converging inverse-tangent series for π and computes π to 100 decimal places * 1768 –
Leonard Euler Leonhard Euler ( , ; 15 April 170718 September 1783) was a Swiss mathematician, physicist, astronomer, geographer, logician and engineer who founded the studies of graph theory and topology and made pioneering and influential discoveries in ma ...
publishes his method for numerical integration of ordinary differential equations in problem 85 of Institutiones calculi integralis * 1789 –
Jurij Vega Baron Jurij Bartolomej Vega (also Veha; la, Georgius Bartholomaei Vecha; german: Georg Freiherr von Vega; born ''Vehovec'', March 23, 1754 – September 26, 1802) was a Slovene mathematician, physicist and artillery officer. Early life Bor ...
improves Machin's formula and computes π to 140 decimal places, * 1805 – FFT-like algorithm known by
Carl Friedrich Gauss Johann Carl Friedrich Gauss (; german: Gauß ; la, Carolus Fridericus Gauss; 30 April 177723 February 1855) was a German mathematician and physicist who made significant contributions to many fields in mathematics and science. Sometimes refer ...
* 1842 –
Ada Lovelace Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the A ...
writes the first algorithm for a computing engine * 1903 – A
fast Fourier transform A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). Fourier analysis converts a signal from its original domain (often time or space) to a representation in th ...
algorithm presented by Carle David Tolmé Runge * 1918 -
Soundex Soundex is a phonetic algorithm for indexing names by sound, as pronounced in English. The goal is for homophones to be encoded to the same representation so that they can be matched despite minor differences in spelling. The algorithm mainly enc ...
* 1926 –
Borůvka's algorithm Borůvka's algorithm is a greedy algorithm for finding a minimum spanning tree in a graph, or a minimum spanning forest in the case of a graph that is not connected. It was first published in 1926 by Otakar Borůvka as a method of constructing an ...
* 1926 –
Primary decomposition In mathematics, the Lasker–Noether theorem states that every Noetherian ring is a Lasker ring, which means that every ideal can be decomposed as an intersection, called primary decomposition, of finitely many ''primary ideals'' (which are related ...
algorithm presented by
Grete Hermann Grete Hermann (2 March 1901 – 15 April 1984) was a Germans, German mathematician and philosopher noted for her work in mathematics, physics, philosophy and education. She is noted for her early philosophical work on the foundations of quantum m ...
* 1927 –
Hartree–Fock method In computational physics and chemistry, the Hartree–Fock (HF) method is a method of approximation for the determination of the wave function and the energy of a quantum many-body system in a stationary state. The Hartree–Fock method often a ...
developed for simulating a quantum many-body system in a stationary state. * 1934 –
Delaunay triangulation In mathematics and computational geometry, a Delaunay triangulation (also known as a Delone triangulation) for a given set P of discrete points in a general position is a triangulation DT(P) such that no point in P is inside the circumcircle o ...
developed by
Boris Delaunay Boris Nikolayevich Delaunay or Delone (russian: Бори́с Никола́евич Делоне́; 15 March 1890 – 17 July 1980) was a Soviet and Russian mathematician, mountain climber, and the father of physicist, Nikolai Borisovich Delone. ...
* 1936 –
Turing machine A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
, an
abstract machine An abstract machine is a computer science theoretical model that allows for a detailed and precise analysis of how a computer system functions. It is analogous to a mathematical function in that it receives inputs and produces outputs based on pre ...
developed by
Alan Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical com ...
, with
others Others or The Others may refer to: Fictional characters * Others (A Song of Ice and Fire), Others (''A Song of Ice and Fire''), supernatural creatures in the fictional world of George R. R. Martin's fantasy series ''A Song of Ice and Fire'' * Ot ...
developed the modern notion of ''algorithm''.


1940s

* 1942 – A
fast Fourier transform A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). Fourier analysis converts a signal from its original domain (often time or space) to a representation in th ...
algorithm developed by G.C. Danielson and
Cornelius Lanczos __NOTOC__ Cornelius (Cornel) Lanczos ( hu, Lánczos Kornél, ; born as Kornél Lőwy, until 1906: ''Löwy (Lőwy) Kornél''; February 2, 1893 – June 25, 1974) was a Hungarian-American and later Hungarian-Irish mathematician and physicist. Accor ...
* 1945 –
Merge sort In computer science, merge sort (also commonly spelled as mergesort) is an efficient, general-purpose, and comparison-based sorting algorithm. Most implementations produce a stable sort, which means that the order of equal elements is the same i ...
developed by
John von Neumann John von Neumann (; hu, Neumann János Lajos, ; December 28, 1903 – February 8, 1957) was a Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. He was regarded as having perhaps the widest cove ...
* 1947 –
Simplex algorithm In mathematical optimization, Dantzig's simplex algorithm (or simplex method) is a popular algorithm for linear programming. The name of the algorithm is derived from the concept of a simplex and was suggested by T. S. Motzkin. Simplices are n ...
developed by
George Dantzig George Bernard Dantzig (; November 8, 1914 – May 13, 2005) was an American mathematical scientist who made contributions to industrial engineering, operations research, computer science, economics, and statistics. Dantzig is known for his dev ...


1950s

* 1952 –
Huffman coding In computer science and information theory, a Huffman code is a particular type of optimal prefix code that is commonly used for lossless data compression. The process of finding or using such a code proceeds by means of Huffman coding, an algori ...
developed by
David A. Huffman David Albert Huffman (August 9, 1925 – October 7, 1999) was an American pioneer in computer science, known for his Huffman coding. He was also one of the pioneers in the field of mathematical origami. Education Huffman earned his bachelor's d ...
* 1953 –
Simulated annealing Simulated annealing (SA) is a probabilistic technique for approximating the global optimum of a given function. Specifically, it is a metaheuristic to approximate global optimization in a large search space for an optimization problem. It ...
introduced by
Nicholas Metropolis Nicholas Constantine Metropolis (Greek: ; June 11, 1915 – October 17, 1999) was a Greek-American physicist. Metropolis received his BSc (1937) and PhD in physics (1941, with Robert Mulliken) at the University of Chicago. Shortly afterwards, ...
* 1954 –
Radix sort In computer science, radix sort is a non-comparative sorting algorithm. It avoids comparison by creating and distributing elements into buckets according to their radix. For elements with more than one significant digit, this bucketing process i ...
computer algorithm developed by
Harold H. Seward Harold H. Seward (July 24, 1930 – June 19, 2012) was a computer scientist, engineer, and inventor. Seward developed the radix sort and counting sort algorithms in 1954 at MIT. He also worked on the Whirlwind Computer and developed instruments ...
* 1964 –
Box–Muller transform The Box–Muller transform, by George Edward Pelham Box and Mervin Edgar Muller, is a random number sampling method for generating pairs of independent, standard, normally distributed (zero expectation, unit variance) random numbers, given a ...
for fast generation of normally distributed numbers published by George Edward Pelham Box and
Mervin Edgar Muller Mervin Edgar Muller (1 June 1928 – 3 December 2018) was an American computer scientist and mathematician. The Box–Muller transform is named after him. Biography Muller was born in Hollywood, Los Angeles, on 1 June 1928, as one of four sons t ...
. Independently pre-discovered by Raymond E. A. C. Paley and
Norbert Wiener Norbert Wiener (November 26, 1894 – March 18, 1964) was an American mathematician and philosopher. He was a professor of mathematics at the Massachusetts Institute of Technology (MIT). A child prodigy, Wiener later became an early researcher i ...
in 1934. * 1956 –
Kruskal's algorithm Kruskal's algorithm finds a minimum spanning forest of an undirected edge-weighted graph. If the graph is connected, it finds a minimum spanning tree. (A minimum spanning tree of a connected graph is a subset of the edges that forms a tree that i ...
developed by
Joseph Kruskal Joseph Bernard Kruskal, Jr. (; January 29, 1928 – September 19, 2010) was an American mathematician, statistician, computer scientist and psychometrician. Personal life Kruskal was born to a Jewish family in New York City to a successful fur ...
* 1956 – Ford–Fulkerson algorithm developed and published by R. Ford Jr. and
D. R. Fulkerson Delbert Ray Fulkerson (; August 14, 1924 – January 10, 1976) was an American mathematician who co-developed the FordFulkerson algorithm, one of the most well-known algorithms to solve the maximum flow problem in Flow network, networks. Early l ...
* 1957 –
Prim's algorithm In computer science, Prim's algorithm (also known as Jarník's algorithm) is a greedy algorithm that finds a minimum spanning tree for a weighted undirected graph. This means it finds a subset of the edges that forms a tree that includes every ve ...
developed by Robert Prim * 1957 –
Bellman–Ford algorithm The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex to all of the other vertices in a weighted digraph. It is slower than Dijkstra's algorithm for the same problem, but more versatile, as it is ...
developed by
Richard E. Bellman Richard Ernest Bellman (August 26, 1920 – March 19, 1984) was an American applied mathematician, who introduced dynamic programming in 1953, and made important contributions in other fields of mathematics, such as biomathematics. He founde ...
and L. R. Ford, Jr. * 1959 –
Dijkstra's algorithm Dijkstra's algorithm ( ) is an algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years ...
developed by
Edsger Dijkstra Edsger Wybe Dijkstra ( ; ; 11 May 1930 – 6 August 2002) was a Dutch computer scientist, programmer, software engineer, systems scientist, and science essayist. He received the 1972 Turing Award for fundamental contributions to developing progra ...
* 1959 –
Shell sort Shellsort, also known as Shell sort or Shell's method, is an in-place comparison sort. It can be seen as either a generalization of sorting by exchange ( bubble sort) or sorting by insertion (insertion sort). The method starts by sorting pairs of ...
developed by Donald L. Shell * 1959 –
De Casteljau's algorithm In the mathematical field of numerical analysis, De Casteljau's algorithm is a recursive method to evaluate polynomials in Bernstein form or Bézier curves, named after its inventor Paul de Casteljau. De Casteljau's algorithm can also be used to sp ...
developed by
Paul de Casteljau Paul de Casteljau (19 November 1930 – 24 March 2022) was a French physicist and mathematician. In 1959, while working at Citroën, he developed an algorithm for evaluating calculations on a certain family of curves, which would later be formal ...
* 1959 –
QR factorization In linear algebra, a QR decomposition, also known as a QR factorization or QU factorization, is a decomposition of a matrix ''A'' into a product ''A'' = ''QR'' of an orthogonal matrix ''Q'' and an upper triangular matrix ''R''. QR decomp ...
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
developed independently by
John G.F. Francis John G.F. Francis (born 1934) is an English computer scientist, who in 1961 published the QR algorithm for computing the eigenvalues and eigenvectors of matrices, which has been named as one of the ten most important algorithms of the twentieth ...
and
Vera Kublanovskaya Vera Nikolaevna Kublanovskaya (''née'' Totubalina; November 21, 1920 – February 21, 2012 ) was a Russian mathematician noted for her work on developing computational methods for solving spectral problems of algebra. She proposed the QR algorithm ...
Also published in: Zhurnal Vychislitel'noi Matematiki i Matematicheskoi Fiziki ournal of Computational Mathematics and Mathematical Physics 1(4), pages 555–570 (1961). * 1959 – Rabin–Scott powerset construction for converting NFA into DFA published by
Michael O. Rabin Michael Oser Rabin ( he, מִיכָאֵל עוזר רַבִּין; born September 1, 1931) is an Israeli mathematician and computer scientist and a recipient of the Turing Award. Biography Early life and education Rabin was born in 1931 in ...
and
Dana Scott Dana Stewart Scott (born October 11, 1932) is an American logician who is the emeritus Hillman University Professor of Computer Science, Philosophy, and Mathematical Logic at Carnegie Mellon University; he is now retired and lives in Berkeley, Ca ...


1960s

* 1960 –
Karatsuba multiplication The Karatsuba algorithm is a fast multiplication algorithm. It was discovered by Anatoly Karatsuba in 1960 and published in 1962. Knuth D.E. (1969) ''The Art of Computer Programming. v.2.'' Addison-Wesley Publ.Co., 724 pp. It is a divi ...
* 1961 – CRC (Cyclic redundancy check) invented by
W. Wesley Peterson William Wesley Peterson (April 22, 1924 – May 6, 2009) was an American mathematician and computer scientist. He was best known for designing the cyclic redundancy check (CRC), – The original paper on CRCs for which research he was awarded ...
* 1962 –
AVL tree In computer science, an AVL tree (named after inventors Adelson-Velsky and Landis) is a self-balancing binary search tree. It was the first such data structure to be invented. In an AVL tree, the heights of the two child subtrees of any node d ...
s * 1962 –
Quicksort Quicksort is an efficient, general-purpose sorting algorithm. Quicksort was developed by British computer scientist Tony Hoare in 1959 and published in 1961, it is still a commonly used algorithm for sorting. Overall, it is slightly faster than ...
developed by
C. A. R. Hoare Sir Charles Antony Richard Hoare (Tony Hoare or C. A. R. Hoare) (born 11 January 1934) is a British computer scientist who has made foundational contributions to programming languages, algorithms, operating systems, formal verification, and c ...
* 1962 –
Bresenham's line algorithm Bresenham's line algorithm is a line drawing algorithm that determines the points of an ''n''-dimensional raster that should be selected in order to form a close approximation to a straight line between two points. It is commonly used to draw line ...
developed by
Jack E. Bresenham Jack Elton Bresenham (born 11 October 1937, Clovis, New Mexico, United States, US) is a former professor of computer science. Biography Bresenham retired from 27 years of service at IBM as a Senior Technical Staff Member in 1987. He taught for 16 ...
* 1962 – Gale–Shapley 'stable-marriage' algorithm developed by
David Gale David (; , "beloved one") (traditional spelling), , ''Dāwūd''; grc-koi, Δαυΐδ, Dauíd; la, Davidus, David; gez , ዳዊት, ''Dawit''; xcl, Դաւիթ, ''Dawitʿ''; cu, Давíдъ, ''Davidŭ''; possibly meaning "beloved one". w ...
and
Lloyd Shapley Lloyd Stowell Shapley (; June 2, 1923 – March 12, 2016) was an American mathematician and Nobel Prize-winning economist. He contributed to the fields of mathematical economics and especially game theory. Shapley is generally considered one of ...
* 1964 –
Heapsort In computer science, heapsort is a comparison-based sorting algorithm. Heapsort can be thought of as an improved selection sort: like selection sort, heapsort divides its input into a sorted and an unsorted region, and it iteratively shrinks the ...
developed by
J. W. J. Williams John William Joseph Williams (2 September 1930 – 29 September 2012) was a Welsh-Canadian computer scientist best known for inventing in 1964 heapsort and the binary heap data structure. He was born in Chippenham, Wiltshire''England & Wales, Civ ...
* 1964 –
multigrid methods In numerical analysis, a multigrid method (MG method) is an algorithm for solving differential equations using a hierarchy of discretizations. They are an example of a class of techniques called multiresolution methods, very useful in problems exhi ...
first proposed by R. P. Fedorenko * 1965 – Cooley–Tukey algorithm rediscovered by
James Cooley James William Cooley (1926 – June 29, 2016) was an American mathematician. Cooley received a B.A. degree in 1949 from Manhattan College, Bronx, NY, an M.A. degree in 1951 from Columbia University, New York, NY, and a Ph.D. degree in 1961 in app ...
and
John Tukey John Wilder Tukey (; June 16, 1915 – July 26, 2000) was an American mathematician and statistician, best known for the development of the fast Fourier Transform (FFT) algorithm and box plot. The Tukey range test, the Tukey lambda distributi ...
* 1965 –
Levenshtein distance In information theory, linguistics, and computer science, the Levenshtein distance is a string metric for measuring the difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-charact ...
developed by
Vladimir Levenshtein Vladimir Iosifovich Levenshtein ( rus, Влади́мир Ио́сифович Левенште́йн, p=vlɐˈdʲimʲɪr ɨˈosʲɪfəvʲɪtɕ lʲɪvʲɪnˈʂtʲejn, a=Ru-Vladimir Iosifovich Levenstein.oga; 20 May 1935 – 6 September 2017) was a ...
* 1965 – Cocke–Younger–Kasami (CYK) algorithm independently developed by
Tadao Kasami Tadao (written: 忠雄, 忠夫, 忠男, 忠生, 忠郎 or 理男) is a masculine Japanese given name. Notable people with the name include: *, Japanese architect *, Japanese ''daimyō'' *Tadao Baba (born 1944), Japanese motorcycle engineer *, Jap ...
* 1965 –
Buchberger's algorithm In the theory of multivariate polynomials, Buchberger's algorithm is a method for transforming a given set of polynomials into a Gröbner basis, which is another set of polynomials that have the same common zeros and are more convenient for extract ...
for computing Gröbner bases developed by
Bruno Buchberger Bruno Buchberger (born 22 October 1942) is Professor of Computer Mathematics at Johannes Kepler University Linz, Johannes Kepler University in Linz, Austria. In his 1965 Ph.D. thesis, he created the theory of Gröbner basis, Gröbner bases, and ha ...
* 1965 –
LR parser In computer science, LR parsers are a type of bottom-up parser that analyse deterministic context-free languages in linear time. There are several variants of LR parsers: SLR parsers, LALR parsers, Canonical LR(1) parsers, Minimal LR(1) parsers ...
s invented by
Donald Knuth Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer sc ...
* 1966 – Dantzig algorithm for shortest path in a graph with negative edges * 1967 –
Viterbi algorithm The Viterbi algorithm is a dynamic programming algorithm for obtaining the maximum a posteriori probability estimate of the most likely sequence of hidden states—called the Viterbi path—that results in a sequence of observed events, especiall ...
proposed by
Andrew Viterbi Andrew James Viterbi (born Andrea Giacomo Viterbi, March 9, 1935) is an American electrical engineer and businessman who co-founded Qualcomm Inc. and invented the Viterbi algorithm. He is the Presidential Chair Professor of Electrical Engineeri ...
* 1967 – Cocke–Younger–Kasami (CYK) algorithm independently developed by Daniel H. Younger * 1968 – A* graph search algorithm described by Peter Hart, Nils Nilsson, and
Bertram Raphael Bertram Raphael (born 1936) is an American computer scientist known for his contributions to artificial intelligence. Early life and education Raphael was born in 1936 in New York. He received his bachelor's degree in physics from the Renssela ...
* 1968 –
Risch algorithm In symbolic computation, the Risch algorithm is a method of indefinite integration used in some computer algebra systems to find antiderivatives. It is named after the American mathematician Robert Henry Risch, a specialist in computer algebra ...
for indefinite integration developed by Robert Henry Risch * 1969 –
Strassen algorithm In linear algebra, the Strassen algorithm, named after Volker Strassen, is an algorithm for matrix multiplication. It is faster than the standard matrix multiplication algorithm for large matrices, with a better asymptotic complexity, although t ...
for matrix multiplication developed by
Volker Strassen Volker Strassen (born April 29, 1936) is a German mathematician, a professor emeritus in the department of mathematics and statistics at the University of Konstanz. For important contributions to the analysis of algorithms he has received many aw ...


1970s

* 1970 –
Dinic's algorithm Dinic's algorithm or Dinitz's algorithm is a strongly polynomial algorithm for computing the maximum flow in a flow network, conceived in 1970 by Israeli (formerly Soviet) computer scientist Yefim (Chaim) A. Dinitz. The algorithm runs in O(V^2 E) ti ...
for computing maximum flow in a flow network by Yefim (Chaim) A. Dinitz * 1970 –
Knuth–Bendix completion algorithm The Knuth–Bendix completion algorithm (named after Donald Knuth and Peter Bendix) is a semi-decision algorithm for transforming a set of equations (over terms) into a confluent term rewriting system. When the algorithm succeeds, it effectively ...
developed by
Donald Knuth Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer sc ...
and Peter B. Bendix * 1970 – BFGS method of the quasi-Newton class * 1970 –
Needleman–Wunsch algorithm The Needleman–Wunsch algorithm is an algorithm used in bioinformatics to align protein or nucleotide sequences. It was one of the first applications of dynamic programming to compare biological sequences. The algorithm was developed by Saul ...
published by Saul B. Needleman and Christian D. Wunsch * 1972 –
Edmonds–Karp algorithm In computer science, the Edmonds–Karp algorithm is an implementation of the Ford–Fulkerson method for computing the maximum flow in a flow network in O(, V, , E, ^2) time. The algorithm was first published by Yefim Dinitz (whose name is also ...
published by
Jack Edmonds Jack R. Edmonds (born April 5, 1934) is an American-born and educated computer scientist and mathematician who lived and worked in Canada for much of his life. He has made fundamental contributions to the fields of combinatorial optimization, pol ...
and
Richard Karp Richard Manning Karp (born January 3, 1935) is an American computer scientist and computational theorist at the University of California, Berkeley. He is most notable for his research in the theory of algorithms, for which he received a Turing A ...
, essentially identical to
Dinic's algorithm Dinic's algorithm or Dinitz's algorithm is a strongly polynomial algorithm for computing the maximum flow in a flow network, conceived in 1970 by Israeli (formerly Soviet) computer scientist Yefim (Chaim) A. Dinitz. The algorithm runs in O(V^2 E) ti ...
from 1970 * 1972 –
Graham scan Graham's scan is a method of finding the convex hull of a finite set of points in the plane with time complexity O(''n'' log ''n''). It is named after Ronald Graham, who published the original algorithm in 1972. The algorithm finds all vertices o ...
developed by
Ronald Graham Ronald Lewis Graham (October 31, 1935July 6, 2020) was an American mathematician credited by the American Mathematical Society as "one of the principal architects of the rapid development worldwide of discrete mathematics in recent years". He ...
* 1972 –
Red–black tree In computer science, a red–black tree is a kind of self-balancing binary search tree. Each node stores an extra bit representing "color" ("red" or "black"), used to ensure that the tree remains balanced during insertions and deletions. When the ...
s and
B-tree In computer science, a B-tree is a self-balancing tree data structure that maintains sorted data and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree generalizes the binary search tree, allowing for n ...
s discovered * 1973 – RSA encryption algorithm discovered by
Clifford Cocks Clifford Christopher Cocks (born 28 December 1950) is a British mathematician and cryptographer. In 1973, while working at the United Kingdom Government Communications Headquarters (GCHQ), he invented a public-key cryptography algorithm equiv ...
* 1973 – Jarvis march algorithm developed by R. A. Jarvis * 1973 –
Hopcroft–Karp algorithm In computer science, the Hopcroft–Karp algorithm (sometimes more accurately called the Hopcroft–Karp–Karzanov algorithm) is an algorithm that takes a bipartite graph as input and produces a maximum cardinality matching as output – a set of ...
developed by
John Hopcroft John Edward Hopcroft (born October 7, 1939) is an American theoretical computer scientist. His textbooks on theory of computation (also known as the Cinderella book) and data structures are regarded as standards in their fields. He is the IBM Pro ...
and
Richard Karp Richard Manning Karp (born January 3, 1935) is an American computer scientist and computational theorist at the University of California, Berkeley. He is most notable for his research in the theory of algorithms, for which he received a Turing A ...
* 1974 – Pollard's ''p'' − 1 algorithm developed by John Pollard * 1974 –
Quadtree A quadtree is a tree data structure in which each internal node has exactly four children. Quadtrees are the two-dimensional analog of octrees and are most often used to partition a two-dimensional space by recursively subdividing it into four q ...
developed by
Raphael Finkel Raphael Finkel (born 1951) is an American computer scientist and a professor at the University of Kentucky. He compiled the first version of the Jargon File. He is the author of ''An Operating Systems Vade Mecum'',J.L. Bentley * 1975 –
Genetic algorithm In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to gene ...
s popularized by John Holland * 1975 –
Pollard's rho algorithm Pollard's rho algorithm is an algorithm for integer factorization. It was invented by John Pollard in 1975. It uses only a small amount of space, and its expected running time is proportional to the square root of the smallest prime factor of the ...
developed by John Pollard * 1975 – Aho–Corasick string matching algorithm developed by Alfred V. Aho and Margaret J. Corasick * 1975 –
Cylindrical algebraic decomposition In mathematics, cylindrical algebraic decomposition (CAD) is a notion, and an algorithm to compute it, that are fundamental for computer algebra and real algebraic geometry. Given a set ''S'' of polynomials in R''n'', a cylindrical algebraic decomp ...
developed by
George E. Collins George E. Collins (January 10, 1928 in Stuart, Iowa – November 21, 2017 in Madison, Wisconsin) was an American mathematician and computer scientist. He is the inventor of garbage collection by reference counting and of the method of quantifier ...
* 1976 – Salamin–Brent algorithm independently discovered by Eugene Salamin and Richard Brent * 1976 –
Knuth–Morris–Pratt algorithm In computer science, the Knuth–Morris–Pratt string-searching algorithm (or KMP algorithm) searches for occurrences of a "word" W within a main "text string" S by employing the observation that when a mismatch occurs, the word itself embodies s ...
developed by
Donald Knuth Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer sc ...
and
Vaughan Pratt Vaughan Pratt (born April 12, 1944) is a Professor Emeritus at Stanford University, who was an early pioneer in the field of computer science. Since 1969, Pratt has made several contributions to foundational areas such as search algorithms, sorti ...
and independently by J. H. Morris * 1977 –
Boyer–Moore string-search algorithm In computer science, the Boyer–Moore string-search algorithm is an efficient string-searching algorithm that is the standard benchmark for practical string-search literature. It was developed by Robert S. Boyer and J Strother Moore in 1977. T ...
for searching the occurrence of a string into another string. * 1977 – RSA encryption algorithm rediscovered by
Ron Rivest Ronald Linn Rivest (; born May 6, 1947) is a cryptographer and an Institute Professor at MIT. He is a member of MIT's Department of Electrical Engineering and Computer Science (EECS) and a member of MIT's Computer Science and Artificial Intell ...
,
Adi Shamir Adi Shamir ( he, עדי שמיר; born July 6, 1952) is an Israeli cryptographer. He is a co-inventor of the Rivest–Shamir–Adleman (RSA) algorithm (along with Ron Rivest and Len Adleman), a co-inventor of the Feige–Fiat–Shamir identificat ...
, and
Len Adleman Leonard Adleman (born December 31, 1945) is an American computer scientist. He is one of the creators of the RSA encryption algorithm, for which he received the 2002 Turing Award, often called the Nobel prize of Computer science. He is also kno ...
* 1977 –
LZ77 LZ77 and LZ78 are the two lossless data compression algorithms published in papers by Abraham Lempel and Jacob Ziv in 1977 and 1978. They are also known as LZ1 and LZ2 respectively. These two algorithms form the basis for many variations includin ...
algorithm developed by
Abraham Lempel Abraham Lempel ( he, אברהם למפל, born 10 February 1936) is an Israeli computer scientist and one of the fathers of the LZ family of lossless data compression algorithms. Biography Lempel was born on 10 February 1936 in Lwów, Poland (n ...
and
Jacob Ziv Jacob Ziv ( he, יעקב זיו; born 1931) is an Israeli electrical engineer who, along with Abraham Lempel, developed the LZ family of lossless data compression algorithms. Biography Ziv was born in Tiberias, British mandate Palestine, on 27 ...
* 1977 –
multigrid methods In numerical analysis, a multigrid method (MG method) is an algorithm for solving differential equations using a hierarchy of discretizations. They are an example of a class of techniques called multiresolution methods, very useful in problems exhi ...
developed independently by
Achi Brandt Achiezer Brandt ( he, אחי ברנד; born 1938 in Givat Brenner, today in Israel) is an Israeli mathematician, noted for his pioneering contributions to multigrid methods. Background Achi Brandt earned his Ph.D. degree at the Weizmann Institut ...
and
Wolfgang Hackbusch Wolfgang Hackbusch (born 24 October 1948 in Westerstede, Lower Saxony) is a German mathematician, known for his pioneering research in multigrid methods and later hierarchical matrices, a concept generalizing the fast multipole method. He was a p ...
* 1978 –
LZ78 LZ77 and LZ78 are the two lossless data compression algorithms published in papers by Abraham Lempel and Jacob Ziv in 1977 and 1978. They are also known as LZ1 and LZ2 respectively. These two algorithms form the basis for many variations includin ...
algorithm developed from
LZ77 LZ77 and LZ78 are the two lossless data compression algorithms published in papers by Abraham Lempel and Jacob Ziv in 1977 and 1978. They are also known as LZ1 and LZ2 respectively. These two algorithms form the basis for many variations includin ...
by
Abraham Lempel Abraham Lempel ( he, אברהם למפל, born 10 February 1936) is an Israeli computer scientist and one of the fathers of the LZ family of lossless data compression algorithms. Biography Lempel was born on 10 February 1936 in Lwów, Poland (n ...
and
Jacob Ziv Jacob Ziv ( he, יעקב זיו; born 1931) is an Israeli electrical engineer who, along with Abraham Lempel, developed the LZ family of lossless data compression algorithms. Biography Ziv was born in Tiberias, British mandate Palestine, on 27 ...
* 1978 – Bruun's algorithm proposed for powers of two by Georg Bruun * 1979 – Khachiyan's
ellipsoid method In mathematical optimization, the ellipsoid method is an iterative method for convex optimization, minimizing convex functions. When specialized to solving feasible linear optimization problems with rational data, the ellipsoid method is an algor ...
developed by
Leonid Khachiyan Leonid Genrikhovich Khachiyan (; russian: Леони́д Ге́нрихович Хачия́н; May 3, 1952April 29, 2005) was a Soviet and American mathematician and computer scientist. He was most famous for his ellipsoid algorithm (1979) for ...
* 1979 –
ID3 ID3 is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself. There are two ...
decision tree algorithm developed by
Ross Quinlan John Ross Quinlan is a computer science researcher in data mining and decision theory. He has contributed extensively to the development of decision tree algorithms, including inventing the canonical C4.5 and ID3 algorithms. He also contributed to ...


1980s

* 1980 – Brent's Algorithm for cycle detection Richard P. Brendt * 1981 –
Quadratic sieve The quadratic sieve algorithm (QS) is an integer factorization algorithm and, in practice, the second fastest method known (after the general number field sieve). It is still the fastest for integers under 100 decimal digits or so, and is considerab ...
developed by
Carl Pomerance Carl Bernard Pomerance (born 1944 in Joplin, Missouri) is an American number theorist. He attended college at Brown University and later received his Ph.D. from Harvard University in 1972 with a dissertation proving that any odd perfect number h ...
* 1981 –
Smith–Waterman algorithm The Smith–Waterman algorithm performs local sequence alignment; that is, for determining similar regions between two strings of nucleic acid sequences or protein sequences. Instead of looking at the entire sequence, the Smith–Waterman algorit ...
developed by
Temple F. Smith Temple Ferris Smith (born March 7, 1939) is an emeritus professor in biomedical engineering who helped to develop the Smith-Waterman algorithm with Michael Waterman in 1981. The Smith-Waterman algorithm serves as the basis for multi sequence comp ...
and
Michael S. Waterman Michael Spencer Waterman (born June 28, 1942) is a Professor of Biology, Mathematics and Computer Science at the University of Southern California (USC), where he holds an Endowed Associates Chair in Biological Sciences, Mathematics and Computer S ...
* 1983 –
Simulated annealing Simulated annealing (SA) is a probabilistic technique for approximating the global optimum of a given function. Specifically, it is a metaheuristic to approximate global optimization in a large search space for an optimization problem. It ...
developed by S. Kirkpatrick, C. D. Gelatt and M. P. Vecchi * 1983 –
Classification and regression tree Decision tree learning is a supervised learning approach used in statistics, data mining and machine learning. In this formalism, a classification or regression decision tree is used as a predictive model to draw conclusions about a set of obse ...
(CART) algorithm developed by
Leo Breiman Leo Breiman (January 27, 1928 – July 5, 2005) was a distinguished statistician at the University of California, Berkeley. He was the recipient of numerous honors and awards, and was a member of the United States National Academy of Sciences. ...
, ''et al.'' * 1984 – LZW algorithm developed from
LZ78 LZ77 and LZ78 are the two lossless data compression algorithms published in papers by Abraham Lempel and Jacob Ziv in 1977 and 1978. They are also known as LZ1 and LZ2 respectively. These two algorithms form the basis for many variations includin ...
by
Terry Welch Terry Archer Welch was an American computer scientist. Along with Abraham Lempel and Jacob Ziv, he developed the lossless Lempel–Ziv–Welch (LZW) compression algorithm, which was published in 1984. Education Welch received a Bachelor of Scienc ...
* 1984 – Karmarkar's interior-point algorithm developed by
Narendra Karmarkar Narendra Krishna Karmarkar (born Circa 1956) is an Indian Mathematician. Karmarkar developed Karmarkar's algorithm. He is listed as an ISI highly cited researcher. He invented one of the first provably polynomial time algorithms for linear prog ...
* 1984 -
ACORN PRNG The ACORN or ″Additive Congruential Random Number″ generators are a robust family of PRNGs (pseudorandom number generators) for sequences of uniformly distributed pseudo-random numbers, introduced in 1989 and still valid in 2019, thirty years ...
discovered by Roy Wikramaratna and used privately * 1985 –
Simulated annealing Simulated annealing (SA) is a probabilistic technique for approximating the global optimum of a given function. Specifically, it is a metaheuristic to approximate global optimization in a large search space for an optimization problem. It ...
independently developed by V. Cerny * 1985 -
Car–Parrinello molecular dynamics Car–Parrinello molecular dynamics or CPMD refers to either a method used in molecular dynamics (also known as the Car–Parrinello method) or the computational chemistry software package used to implement this method. The CPMD method is one of th ...
developed by
Roberto Car Roberto Car (born 3 January 1947 in Trieste) is an Italian physicist and the Ralph W. Dornte *31 Professor in Chemistry at Princeton University, where he is also a faculty member in the Princeton Institute for the Science and Technology of Materia ...
and
Michele Parrinello Michele Parrinello (born 7 September 1945, Messina) is an Italian physicist particularly known for his work in molecular dynamics (the computer simulation of physical movements of atoms and molecules). Parrinello and Roberto Car were awarded the ...
* 1985 – Splay trees discovered by Sleator and Tarjan * 1986 –
Blum Blum Shub Blum Blum Shub (B.B.S.) is a pseudorandom number generator proposed in 1986 by Lenore Blum, Manuel Blum and Michael Shub that is derived from Michael O. Rabin's one-way function. __TOC__ Blum Blum Shub takes the form :x_ = x_n^2 \bmod M, where ' ...
proposed by L. Blum, M. Blum, and M. Shub * 1986 – Push relabel maximum flow algorithm by Andrew Goldberg and Robert Tarjan * 1986 - Barnes–Hut tree method developed by Josh Barnes and
Piet Hut Piet Hut (born September 26, 1952) is a Dutch-American astrophysicist, who divides his time between research in computer simulations of dense stellar systems and broadly interdisciplinary collaborations, ranging from other fields in natural scien ...
for fast approximate simulation of
n-body problem In physics, the -body problem is the problem of predicting the individual motions of a group of celestial objects interacting with each other gravitationally.Leimanis and Minorsky: Our interest is with Leimanis, who first discusses some histor ...
s * 1987 –
Fast multipole method __NOTOC__ The fast multipole method (FMM) is a numerical technique that was developed to speed up the calculation of long-ranged forces in the ''n''-body problem. It does this by expanding the system Green's function using a multipole expansion, ...
developed by
Leslie Greengard Dr. Leslie F. Greengard is an American mathematician, physicist and computer scientist. He is co-inventor with Vladimir Rokhlin Jr. of the fast multipole method (FMM) in 1987, recognized as one of the top-ten algorithms of the 20th century. Gree ...
and Vladimir Rokhlin * 1988 –
Special number field sieve In number theory, a branch of mathematics, the special number field sieve (SNFS) is a special-purpose integer factorization algorithm. The general number field sieve (GNFS) was derived from it. The special number field sieve is efficient for intege ...
developed by John Pollard * 1989 -
ACORN PRNG The ACORN or ″Additive Congruential Random Number″ generators are a robust family of PRNGs (pseudorandom number generators) for sequences of uniformly distributed pseudo-random numbers, introduced in 1989 and still valid in 2019, thirty years ...
published by Roy Wikramaratna * 1989 – Paxos protocol developed by
Leslie Lamport Leslie B. Lamport (born February 7, 1941 in Brooklyn) is an American computer scientist and mathematician. Lamport is best known for his seminal work in distributed systems, and as the initial developer of the document preparation system LaTeX and ...
* 1989 –
Skip list In computer science, a skip list (or skiplist) is a probabilistic data structure that allows \mathcal(\log n) average complexity for search as well as \mathcal(\log n) average complexity for insertion within an ordered sequence of n elements. ...
discovered by William Pugh


1990s

* 1990 –
General number field sieve In number theory, the general number field sieve (GNFS) is the most efficient classical algorithm known for factoring integers larger than . Heuristically, its complexity for factoring an integer (consisting of bits) is of the form :\exp\left( ...
developed from SNFS by
Carl Pomerance Carl Bernard Pomerance (born 1944 in Joplin, Missouri) is an American number theorist. He attended college at Brown University and later received his Ph.D. from Harvard University in 1972 with a dissertation proving that any odd perfect number h ...
,
Joe Buhler Joe Peter Buhler (born 1950 in Vancouver, Washington) is an American mathematician. Buhler received his undergraduate degree from Reed College in 1972, and his Ph.D. from Harvard University in 1977 with thesis ''Icosahedral Galois Representations' ...
,
Hendrik Lenstra Hendrik Willem Lenstra Jr. (born 16 April 1949, Zaandam) is a Dutch mathematician. Biography Lenstra received his doctorate from the University of Amsterdam in 1977 and became a professor there in 1978. In 1987 he was appointed to the faculty of ...
, and
Leonard Adleman Leonard Adleman (born December 31, 1945) is an American computer scientist. He is one of the creators of the RSA encryption algorithm, for which he received the 2002 Turing Award, often called the Nobel prize of Computer science. He is also kno ...
* 1990 –
Coppersmith–Winograd algorithm In theoretical computer science, the computational complexity of matrix multiplication dictates how quickly the operation of matrix multiplication can be performed. Matrix multiplication algorithms are a central subroutine in theoretical and nu ...
developed by
Don Coppersmith Don Coppersmith (born 1950) is a cryptographer and mathematician. He was involved in the design of the Data Encryption Standard block cipher at IBM, particularly the design of the S-boxes, strengthening them against differential cryptanalysis ...
and
Shmuel Winograd __NOTOC__ Shmuel Winograd ( he, שמואל וינוגרד; January 4, 1936 – March 25, 2019) was an Israeli-American computer scientist, noted for his contributions to computational complexity. He has proved several major results regarding the ...
* 1990 – BLAST algorithm developed by
Stephen Altschul Stephen Frank Altschul (born February 28, 1957) is an American mathematician who has designed algorithms that are used in the field of bioinformatics (the Karlin-Altschul algorithm and its successors). Altschul is the co-author of the BLAST algori ...
,
Warren Gish Warren Richard Gish is the owner of Advanced Biocomputing LLC. He joined Washington University in St. Louis as a junior faculty member in 1994, and was a Research Associate Professor of Genetics from 2002 to 2007. Education After initially stud ...
,
Webb Miller Webb Colby Miller (born 1943) is a professor in the Department of Biology and the Department of Computer Science and Engineering at The Pennsylvania State University. Education Miller attended Whitman College, and received his Ph.D. in mathemati ...
,
Eugene Myers Eugene Wimberly "Gene" Myers, Jr. (born December 31, 1953) is an American computer scientist and bioinformatician, who is best known for contributing to the early development of the NCBI's BLAST tool for sequence analysis. Education Myers receiv ...
, and
David J. Lipman David J. Lipman is an American biologist who from 1989 to 2017 was the director of the National Center for Biotechnology Information (NCBI) at the National Institutes of Health. NCBI is the home of GenBank, the U.S. node of the International Sequ ...
from
National Institutes of Health The National Institutes of Health, commonly referred to as NIH (with each letter pronounced individually), is the primary agency of the United States government responsible for biomedical and public health research. It was founded in the late ...
* 1991 – Wait-free synchronization developed by
Maurice Herlihy Maurice Peter Herlihy (born 4 January 1954) is a computer scientist active in the field of multiprocessor synchronization. Herlihy has contributed to areas including theoretical foundations of wait-free synchronization, linearizable data structu ...
* 1992 –
Deutsch–Jozsa algorithm The Deutsch–Jozsa algorithm is a deterministic quantum algorithm proposed by David Deutsch and Richard Jozsa in 1992 with improvements by Richard Cleve, Artur Ekert, Chiara Macchiavello, and Michele Mosca in 1998. Although of little current p ...
proposed by D. Deutsch and
Richard Jozsa Richard Jozsa is an Australian mathematician who holds the Leigh Trapnell Chair in Quantum Physics at the University of Cambridge. He is a fellow of King's College, Cambridge, where his research investigates quantum information science. A pion ...
* 1992 –
C4.5 algorithm C4.5 is an algorithm used to generate a decision tree developed by Ross Quinlan. C4.5 is an extension of Quinlan's earlier ID3 algorithm. The decision trees generated by C4.5 can be used for classification, and for this reason, C4.5 is often referr ...
, a descendant of
ID3 ID3 is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself. There are two ...
decision tree algorithm, was developed by
Ross Quinlan John Ross Quinlan is a computer science researcher in data mining and decision theory. He has contributed extensively to the development of decision tree algorithms, including inventing the canonical C4.5 and ID3 algorithms. He also contributed to ...
* 1993 –
Apriori algorithm AprioriRakesh Agrawal and Ramakrishnan SrikanFast algorithms for mining association rules Proceedings of the 20th International Conference on Very Large Data Bases, VLDB, pages 487-499, Santiago, Chile, September 1994. is an algorithm for frequent ...
developed by Rakesh Agrawal and Ramakrishnan Srikant * 1993 –
Karger's algorithm In computer science and graph theory, Karger's algorithm is a randomized algorithm to compute a minimum cut of a connected graph. It was invented by David Karger and first published in 1993. The idea of the algorithm is based on the concept of c ...
to compute the minimum cut of a connected graph by David Karger * 1994 –
Shor's algorithm Shor's algorithm is a quantum algorithm, quantum computer algorithm for finding the prime factors of an integer. It was developed in 1994 by the American mathematician Peter Shor. On a quantum computer, to factor an integer N , Shor's algorithm ...
developed by
Peter Shor Peter Williston Shor (born August 14, 1959) is an American professor of applied mathematics at MIT. He is known for his work on quantum computation, in particular for devising Shor's algorithm, a quantum algorithm for factoring exponentially fa ...
* 1994 –
Burrows–Wheeler transform The Burrows–Wheeler transform (BWT, also called block-sorting compression) rearranges a character string into runs of similar characters. This is useful for compression, since it tends to be easy to compress a string that has runs of repeated c ...
developed by
Michael Burrows Michael Burrows, FRS (born 1963) is a British computer scientist and the creator of the Burrows–Wheeler transform, currently working for Google. Born in Britain, as of 2018 he lives in the United States, although he remains a British citizen. ...
and David Wheeler * 1994 –
Bootstrap aggregating Bootstrap aggregating, also called bagging (from bootstrap aggregating), is a machine learning ensemble meta-algorithm designed to improve the stability and accuracy of machine learning algorithms used in statistical classification and regress ...
(bagging) developed by
Leo Breiman Leo Breiman (January 27, 1928 – July 5, 2005) was a distinguished statistician at the University of California, Berkeley. He was the recipient of numerous honors and awards, and was a member of the United States National Academy of Sciences. ...
* 1995 –
AdaBoost AdaBoost, short for ''Adaptive Boosting'', is a statistical classification meta-algorithm formulated by Yoav Freund and Robert Schapire in 1995, who won the 2003 Gödel Prize for their work. It can be used in conjunction with many other types of ...
algorithm, the first practical boosting algorithm, was introduced by
Yoav Freund Joab (Hebrew Modern: ''Yōʼav'', Tiberian: ''Yōʼāḇ'') the son of Zeruiah, was the nephew of King David and the commander of his army, according to the Hebrew Bible. Name The name Joab is, like many other Hebrew names, theophoric - derive ...
and
Robert Schapire Robert Elias Schapire is an American computer scientist, former David M. Siegel '83 Professor in the computer science department at Princeton University, and has recently moved to Microsoft Research. His primary specialty is theoretical and appli ...
* 1995 – soft-margin
support vector machine In machine learning, support vector machines (SVMs, also support vector networks) are supervised learning models with associated learning algorithms that analyze data for classification and regression analysis. Developed at AT&T Bell Laboratorie ...
algorithm was published by
Vladimir Vapnik Vladimir Naumovich Vapnik (russian: Владимир Наумович Вапник; born 6 December 1936) is one of the main developers of the Vapnik–Chervonenkis theory of statistical learning, and the co-inventor of the support-vector machine ...
and
Corinna Cortes Corinna Cortes is a Danish computer scientist known for her contributions to machine learning. She is currently the Head of Google Research, New York City, New York. Cortes is a recipient of the Paris Kanellakis Award, Paris Kanellakis Theory and ...
. It adds a soft-margin idea to the 1992 algorithm by Boser, Nguyon, Vapnik, and is the algorithm that people usually refer to when saying SVM * 1995 –
Ukkonen's algorithm In computer science, Ukkonen's algorithm is a linear-time, online algorithm for constructing suffix trees, proposed by Esko Ukkonen in 1995. The algorithm begins with an implicit suffix tree containing the first character of the string. Then it ste ...
for construction of suffix trees * 1996 – Bruun's algorithm generalized to arbitrary even composite sizes by H. Murakami * 1996 –
Grover's algorithm In quantum computing, Grover's algorithm, also known as the quantum search algorithm, refers to a quantum algorithm for unstructured search that finds with high probability the unique input to a black box function that produces a particular output ...
developed by
Lov K. Grover Lov Kumar Grover (born 1961) is an Indian-Americans, American computer scientist. He is the originator of the Grover's algorithm, Grover database search algorithm used in quantum computing. Grover's 1996 algorithm won renown as the second majo ...
* 1996 –
RIPEMD-160 RIPEMD (RIPE Message Digest) is a family of cryptographic hash functions developed in 1992 (the original RIPEMD) and 1996 (other variants). There are five functions in the family: RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320, of w ...
developed by
Hans Dobbertin Hans Dobbertin (April 17, 1952 – February 2, 2006) was a German cryptographer who is best known for his work on cryptanalysis of the MD4, MD5, and original RIPEMD hash functions, and for his part in the design of the new version of the RIPEMD ...
, Antoon Bosselaers, and
Bart Preneel Bart Preneel (born 15 October 1963 in Leuven, Belgium) is a Flemish cryptographer and cryptanalyst. He is a professor at Katholieke Universiteit Leuven, in the COSIC group. He was the president of the International Association for Cryptologic R ...
* 1997 –
Mersenne Twister The Mersenne Twister is a general-purpose pseudorandom number generator (PRNG) developed in 1997 by and . Its name derives from the fact that its period length is chosen to be a Mersenne prime. The Mersenne Twister was designed specifically to re ...
a pseudo random number generator developed by
Makoto Matsumoto is a unisex Japanese name although it is more commonly used by males. As a noun, Makoto means "sincerity" (誠) or "truth" (真, 眞). People Given name *Makoto (musician) (born 1977), drum and bass artist *Makoto (Sharan Q) ( まこと), dr ...
and Tajuki Nishimura * 1998 –
PageRank PageRank (PR) is an algorithm used by Google Search to rank web pages in their search engine results. It is named after both the term "web page" and co-founder Larry Page. PageRank is a way of measuring the importance of website pages. According ...
algorithm was published by
Larry Page Lawrence Edward Page (born March 26, 1973) is an American business magnate, computer scientist and internet entrepreneur. He is best known for co-founding Google with Sergey Brin. Page was the chief executive officer of Google from 1997 unt ...
* 1998 – rsync algorithm developed by
Andrew Tridgell Andrew "Tridge" Tridgell (born 28 February 1967) is an Australian computer programmer. He is the author of and a contributor to the Samba file server, and co-inventor of the rsync algorithm. He has analysed complex proprietary protocols and a ...
* 1999 –
gradient boosting Gradient boosting is a machine learning technique used in regression and classification tasks, among others. It gives a prediction model in the form of an ensemble of weak prediction models, which are typically decision trees. When a decision t ...
algorithm developed by
Jerome H. Friedman Jerome Harold Friedman (born December 29, 1939) is an American statistician, consultant and Professor of Statistics at Stanford University, known for his contributions in the field of statistics and data mining.
* 1999 –
Yarrow algorithm The Yarrow algorithm is a family of cryptographic pseudorandom number generators (CPRNG) devised by John Kelsey, Bruce Schneier, and Niels Ferguson and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open sour ...
designed by
Bruce Schneier Bruce Schneier (; born January 15, 1963) is an American cryptographer, computer security professional, privacy specialist, and writer. Schneier is a Lecturer in Public Policy at the Harvard Kennedy School and a Fellow at the Berkman Klein Cente ...
, John Kelsey, and
Niels Ferguson Niels T. Ferguson (born 10 December 1965, Eindhoven) is a Dutch cryptographer and consultant who currently works for Microsoft. He has worked with others, including Bruce Schneier, designing cryptographic algorithms, testing algorithms and protoco ...


2000s

* 2000 –
Hyperlink-induced topic search Hyperlink-Induced Topic Search (HITS; also known as hubs and authorities) is a link analysis algorithm that rates Web pages, developed by Jon Kleinberg. The idea behind Hubs and Authorities stemmed from a particular insight into the creation of web ...
a hyperlink analysis algorithm developed by Jon Kleinberg * 2001 –
Lempel–Ziv–Markov chain algorithm The Lempel–Ziv–Markov chain algorithm (LZMA) is an algorithm used to perform lossless data compression Lossless compression is a class of data compression that allows the original data to be perfectly reconstructed from the compressed dat ...
for compression developed by Igor Pavlov * 2001 – Viola–Jones algorithm for real-time face detection was developed by Paul Viola and Michael Jones. * 2001 – DHT (Distributed hash table) is invented by multiple people from academia and application systems * 2001 – BitTorrent a first fully decentralized peer-to-peer file distribution system is published * 2001 –
LOBPCG Locally Optimal Block Preconditioned Conjugate Gradient (LOBPCG) is a matrix-free method for finding the largest (or smallest) eigenvalues and the corresponding eigenvectors of a symmetric generalized eigenvalue problem :A x= \lambda B x, for a g ...
Locally Optimal Block Preconditioned Conjugate Gradient method finding extreme eigenvalues of symmetric eigenvalue problems by Andrew Knyazev * 2002 –
AKS primality test The AKS primality test (also known as Agrawal–Kayal–Saxena primality test and cyclotomic AKS test) is a deterministic primality-proving algorithm created and published by Manindra Agrawal, Neeraj Kayal, and Nitin Saxena, computer scientists at ...
developed by
Manindra Agrawal Manindra Agrawal (born 20 May 1966) is a professor at the Department of Computer Science and Engineering and the Deputy Director at the Indian Institute of Technology, Kanpur. He was also the recipient of the first Infosys Prize for Mathematics ...
,
Neeraj Kayal Neeraj Kayal ( hi, नीरज कयाल) is an Indian computer scientist and mathematician noted for development of the AKS primality test, along with Manindra Agrawal and Nitin Saxena. Kayal was born and raised in Guwahati, India. Early ...
and
Nitin Saxena Nitin Saxena (born 3 May 1981Saxena's CV at University of Bonn
) is ...
* 2002 –
Girvan–Newman algorithm The Girvan–Newman algorithm (named after Michelle Girvan and Mark Newman) is a hierarchical method used to detect communities in complex systems.Girvan M. and Newman M. E. J.Community structure in social and biological networks Proc. Natl. Acad. ...
to detect communities in complex systems * 2002 –
Packrat parser In computer science, a parsing expression grammar (PEG) is a type of analytic formal grammar, i.e. it describes a formal language in terms of a set of rules for recognizing strings in the language. The formalism was introduced by Bryan Ford in 200 ...
developed for generating a parser that parses PEG (Parsing expression grammar) in linear time parsing developed by Bryan Ford * 2009 –
Bitcoin Bitcoin ( abbreviation: BTC; sign: ₿) is a decentralized digital currency that can be transferred on the peer-to-peer bitcoin network. Bitcoin transactions are verified by network nodes through cryptography and recorded in a public distr ...
a first trust-less decentralized cryptocurrency system is published


2010s

* 2013 – Raft consensus protocol published by Diego Ongaro and
John Ousterhout John Kenneth Ousterhout (, born October 15, 1954) is a professor of computer science at Stanford University. He founded Electric Cloud with John Graham-Cumming. Ousterhout was a professor of computer science at University of California, Berkele ...
* 2015 – YOLO (“You Only Look Once”) is an effective real-time object recognition algorithm, first described by Joseph Redmon et al.


References

{{DEFAULTSORT:Timeline Of Algorithms Algorithms
Algorithms In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing c ...
Algorithms In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing c ...