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 problems or to perform a computation. Algorithms are used as specifications for performing ...
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.
Hist ...
" (on cooking, rituals, agriculture and other themes)
* c. 1700–2000 BC – Egyptians develop earliest known algorithms for
multiplying 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 ...
ns develop earliest known algorithms for
factorization
In mathematics, factorization (or factorisation, see English spelling differences) or factoring consists of writing a number or another mathematical object as a product of several ''factors'', usually smaller or simpler objects of the same kind ...
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 .
...
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 ...
* 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 ...
* 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 ...
* 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 tr ...
* 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 Persians, Persian polymath from Khwarazm, who produced vastly influential works in Mathematics ...
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 coeffici ...
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 areas of mathematics, 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 mathem ...
''; 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 Persians, Persian polymath from Khwarazm, who produced vastly influential works in Mathematics ...
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 facts to the digits. One who practices algorism is known as an algorist. This positional notation system ha ...
, 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 problems or to perform a computation. Algorithms are used as specifications for performing ...
(
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 ...
''algorithmus'') with a meaning "calculation method"
* c. 850 –
cryptanalysis 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 ...
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 dec ...
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
Powers may refer to:
Arts and media
* ''Powers'' (comics), a comic book series by Brian Michael Bendis and Michael Avon Oeming
** ''Powers'' (American TV series), a 2015–2016 series based on the comics
* ''Powers'' (British TV series), a 200 ...
, and in turn, he develops an algorithm for determining the general formula for the sum of any
integral
In mathematics, an integral assigns numbers to functions in a way that describes displacement, area, volume, and other concepts that arise by combining infinitesimal data. The process of finding integrals is called integration. Along with ...
powers, which was fundamental to the development of
integral calculus
In mathematics, an integral assigns numbers to functions in a way that describes displacement, area, volume, and other concepts that arise by combining infinitesimal data. The process of finding integrals is called integration. Along with di ...
[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 Pic ...
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 com ...
letter; he also gives an exposition on and worked example of
cryptanalysis, 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 ...
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 ...
discovered a method to find the roots of a
quartic polynomial
In algebra, a quartic function is a 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 four, called a quartic polynomial.
A '' quartic equation'', or equation of the fourth d ...
* 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 Ioa ...
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 of ...
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 ...
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 g ...
* 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 ...
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
Bo ...
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 refe ...
* 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 ...
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 t ...
algorithm presented by
Carle David Tolmé Runge
Carl David Tolmé Runge (; 30 August 1856 – 3 January 1927) was a German mathematician, physicist, and spectroscopist.
He was co-developer and co- eponym of the Runge–Kutta method (German pronunciation: ), in the field of what is today kno ...
* 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 e ...
* 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 a ...
* 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 rela ...
algorithm presented by
Grete Hermann
Grete Hermann (2 March 1901 – 15 April 1984) was a 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 mechanics, ...
* 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 ofte ...
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 ...
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 algor ...
, 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 p ...
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 c ...
, with
others 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 t ...
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 ...
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 no ...
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 de ...
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 algor ...
developed by
David A. Huffman
* 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. ...
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 ...
computer algorithm developed by
Harold H. Seward
* 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 s ...
for fast generation of normally distributed numbers published by
George Edward Pelham Box and
Mervin Edgar Muller. 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 ...
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 ...
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 fu ...
* 1956 –
Ford–Fulkerson algorithm developed and published by
R. Ford Jr. and
D. R. Fulkerson
* 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 ...
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 i ...
developed by
Richard E. Bellman and
L. R. Ford, Jr.
Lester Randolph Ford Jr. (September 23, 1927 – February 26, 2017) was an American mathematician specializing in network flow problems. He was the son of mathematician Lester R. Ford Sr.
Ford's paper with D. R. Fulkerson on the maximum flow p ...
* 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 progr ...
* 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 decompo ...
algorithm
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 ...
developed independently by
John G.F. Francis 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 algorit ...
[ 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, C ...
1960s
* 1960 –
Karatsuba multiplication
* 1961 –
CRC (Cyclic redundancy check) invented by
W. Wesley Peterson
* 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 ...
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 li ...
developed by
Jack E. Bresenham
* 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 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 ...
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
*, Ja ...
* 1965 –
Buchberger's algorithm for computing
Gröbner bases developed by
Bruno Buchberger
Bruno Buchberger (born 22 October 1942) is Professor of Computer Mathematics at Johannes Kepler University in Linz, Austria. In his 1965 Ph.D. thesis, he created the theory of Gröbner bases, and has developed this theory throughout his career. H ...
* 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) parse ...
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 ...
* 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, especially ...
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 Engineerin ...
* 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 Rensselae ...
* 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 w ...
for indefinite integration developed by
Robert Henry Risch
Robert Henry Risch (born 1939) is an American mathematician who worked on computer algebra and is known for his work on symbolic integration, specifically the Risch algorithm
In symbolic computation, the Risch algorithm is a method of indefinit ...
* 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 ...
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) ...
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 effective ...
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 ...
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 als ...
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) ...
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 ...
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 ...
s discovered
* 1973 –
RSA
RSA may refer to:
Organizations Academia and education
* Rabbinical Seminary of America, a yeshiva in New York City
*Regional Science Association International (formerly the Regional Science Association), a US-based learned society
*Renaissance S ...
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 ...
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 ...
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
Jon Louis Bentley (born February 20, 1953) is an American computer scientist who is credited with the heuristic-based partitioning algorithm ''k''-d tree.
Education and career
Bentley received a B.S. in mathematical sciences from Stanford Unive ...]
* 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 gen ...
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 th ...
developed by
John Pollard
* 1975 –
Aho–Corasick string matching algorithm developed by
Alfred V. Aho
Alfred Vaino Aho (born August 9, 1941) is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming.
Aho was elected into ...
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 decom ...
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 ...
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 ...
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, so ...
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.
...
for searching the occurrence of a string into another string.
* 1977 –
RSA
RSA may refer to:
Organizations Academia and education
* Rabbinical Seminary of America, a yeshiva in New York City
*Regional Science Association International (formerly the Regional Science Association), a US-based learned society
*Renaissance S ...
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 Int ...
,
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 identifica ...
, 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 k ...
* 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 including ...
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 No ...
* 1977 –
multigrid methods 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 In ...
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 wa ...
* 1978 –
LZ78 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 including ...
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 No ...
* 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 minimizing convex functions. When specialized to solving feasible linear optimization problems with rational data, the ellipsoid method is an algorithm which finds an ...
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 tw ...
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 ...
* 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 Needleman–Wunsch algorithm, entire sequence ...
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
* 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. ...
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 ob ...
(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 by
Terry Welch
* 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 pro ...
* 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. ...
independently developed by
V. Cerny
* 1985 -
Car–Parrinello molecular dynamics developed by
Roberto Car 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 histo ...
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, w ...
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.
Gr ...
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 inte ...
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\le ...
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 ...
,
Joe Buhler,
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 o ...
, 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 know ...
* 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,
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 recei ...
, and
David J. Lipman 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
The federal government of the United States (U.S. federal government or U ...
* 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 structure ...
* 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 ...
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 tw ...
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 to compute the minimum cut of a connected graph by David Karger
* 1994 –
Shor's algorithm
Shor's algorithm is a 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 runs in polynomial ...
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 ...
* 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 ...
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 - der ...
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 app ...
* 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 Laboratories ...
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 machin ...
and
Corinna Cortes. 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 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 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 Antoon is a Dutch masculine given name that is an alternate form of Antonius used in Belgium, Netherlands, Suriname, South Africa, Namibia, and Indonesia, a nickname and a surname. Antoon is also a transliteration of Arabic (), also spelt ...
, 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 ...
* 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 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. Accordi ...
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 u ...
* 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 ...
* 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 tr ...
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 sourc ...
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 Ce ...
,
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 we ...
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. It has been under development since either 1996 or 1998 by Igor Pavlov and was first used in the 7z format of the 7-Zip archiver. This ...
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 ...
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 ...
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 and
* 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 20 ...
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 di ...
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, Berk ...
* 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 ...
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 ...