The following timeline of algorithms outlines the development of
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s (mainly "mathematical recipes") since their inception.
Antiquity
* Before –
writing
Writing is the act of creating a persistent representation of language. A writing system includes a particular set of symbols called a ''script'', as well as the rules by which they encode a particular spoken language. Every written language ...
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. Recip ...
" (on
cooking
Cooking, also known as cookery or professionally as the culinary arts, is the art, science and craft of using heat to make food more palatable, digestible, nutritious, or Food safety, safe. Cooking techniques and ingredients vary widely, from ...
,
ritual
A ritual is a repeated, structured sequence of actions or behaviors that alters the internal or external state of an individual, group, or environment, regardless of conscious understanding, emotional context, or symbolic meaning. Traditionally ...
s,
agriculture
Agriculture encompasses crop and livestock production, aquaculture, and forestry for food and non-food products. Agriculture was a key factor in the rise of sedentary human civilization, whereby farming of domesticated species created ...
and other themes)
* c. 1700–2000 BC – Egyptians develop earliest known algorithms for
multiplying
Multiplication is one of the four elementary mathematical operations of arithmetic, with the other ones being addition, subtraction, and division. The result of a multiplication operation is called a '' product''. Multiplication is often de ...
two numbers
* c. 1600 BC –
Babylonia
Babylonia (; , ) was an Ancient history, ancient Akkadian language, Akkadian-speaking state and cultural area based in the city of Babylon in central-southern Mesopotamia (present-day Iraq and parts of Kuwait, Syria and Iran). It emerged as a ...
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 y^2 = x; in other words, a number whose ''square'' (the result of multiplying the number by itself, or y \cdot y) is . For example, 4 and −4 are square roots of 16 because 4 ...
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 number, composite (i.e., not prime) the multiples of each prime, starting with ...
* 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 row-wise operations performed on the corresponding matrix of coefficients. This method can a ...
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 ...
Medieval Period
* 628 –
Chakravala method
The ''chakravala'' method () 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 – Students' Britannica India: Bhask ...
described by
Brahmagupta
Brahmagupta ( – ) was an Indian Indian mathematics, mathematician and Indian astronomy, astronomer. He is the author of two early works on mathematics and astronomy: the ''Brāhmasphuṭasiddhānta'' (BSS, "correctly established Siddhanta, do ...
* c. 820 –
Al-Khawarizmi
Muhammad ibn Musa al-Khwarizmi , or simply al-Khwarizmi, was a mathematician active during the Islamic Golden Age, who produced Arabic-language works in Mathematics in the medieval Islamic world, mathematics, Astronomy in the medieval Islami ...
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 mathematics, a quadratic equation () is an equation that can be rearranged in standard form as
ax^2 + bx + c = 0\,,
where the variable (mathematics), variable represents an unknown number, and , , and represent known numbers, where . (If and ...
s in his ''
Algebra
Algebra is a branch of mathematics that deals with abstract systems, known as algebraic structures, and the manipulation of expressions within those systems. It is a generalization of arithmetic that introduces variables and algebraic ope ...
''; the word ''algorithm'' comes from his name
* 825 –
Al-Khawarizmi
Muhammad ibn Musa al-Khwarizmi , or simply al-Khwarizmi, was a mathematician active during the Islamic Golden Age, who produced Arabic-language works in Mathematics in the medieval Islamic world, mathematics, Astronomy in the medieval Islami ...
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 ...
, algorithms for using the
Hindu–Arabic numeral system
The Hindu–Arabic numeral system (also known as the Indo-Arabic numeral system, Hindu numeral system, and Arabic numeral system) is a positional notation, positional Decimal, base-ten numeral system for representing integers; its extension t ...
, 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 Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
(
Latin
Latin ( or ) is a classical language belonging to the Italic languages, Italic branch of the Indo-European languages. Latin was originally spoken by the Latins (Italic tribe), Latins in Latium (now known as Lazio), the lower Tiber area aroun ...
''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 se ...
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 th ...
algorithms developed by
Al-Kindi
Abū Yūsuf Yaʻqūb ibn ʼIsḥāq aṣ-Ṣabbāḥ al-Kindī (; ; ; ) was an Arab Muslim polymath active as a philosopher, mathematician, physician, and music theorist
Music theory is the study of theoretical frameworks for understandin ...
(Alkindus) in ''A Manuscript on Deciphering Cryptographic Messages'', which contains algorithms on breaking
encryption
In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
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 (Latinization of names, Latinized as Alhazen; ; full name ; ) was a medieval Mathematics in medieval Islam, mathematician, Astronomy in the medieval Islamic world, astronomer, and Physics in the medieval Islamic world, p ...
(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 is the continuous analog of a Summation, sum, which is used to calculate area, areas, volume, volumes, and their generalizations. Integration, the process of computing an integral, is one of the two fundamental oper ...
powersVictor 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ī (; 1355 or 1356 – 1418), was a medieval Arab Egyptian encyclopedist, polymath and mathemat ...
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
*Substitution (poetry), a variation in poetic scansion
* Substitution (theatre), an acting methodology
Music
*Chord substitution, swapping one chord for a related one within a chord progression
*Tritone ...
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 se ...
, 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. AD 801–873), who formally developed the method to break ci ...
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 Italians, Italian mathematician best known today for solving the biquadratic equation.
Biography
Born in Bologna, Lodovico's grandfather, Bartolomeo Ferrari, was forced out of M ...
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 de ...
* 1545 –
Gerolamo Cardano
Gerolamo Cardano (; also Girolamo or Geronimo; ; ; 24 September 1501– 21 September 1576) was an Italian polymath whose interests and proficiencies ranged through those of mathematician, physician, biologist, physicist, chemist, astrologer, as ...
published Cardano's method for finding the roots of a
cubic polynomial
In mathematics, a cubic function is a function (mathematics), function of the form f(x)=ax^3+bx^2+cx+d, that is, a polynomial function of degree three. In many texts, the ''coefficients'' , , , and are supposed to be real numbers, and the func ...
* 1614 –
John Napier
John Napier of Merchiston ( ; Latinisation of names, Latinized as Ioannes Neper; 1 February 1550 – 4 April 1617), nicknamed Marvellous Merchiston, was a Scottish landowner known as a mathematician, physicist, and astronomer. He was the 8 ...
develops method for performing calculations using
logarithm
In mathematics, the logarithm of a number is the exponent by which another fixed value, the base, must be raised to produce that number. For example, the logarithm of to base is , because is to the rd power: . More generally, if , the ...
s
* 1671 –
Newton–Raphson method
In numerical analysis, the Newton–Raphson method, also known simply as Newton's 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 ...
developed by
Isaac Newton
Sir Isaac Newton () was an English polymath active as a mathematician, physicist, astronomer, alchemist, theologian, and author. Newton was a key figure in the Scientific Revolution and the Age of Enlightenment, Enlightenment that followed ...
* 1690 –
Newton–Raphson method
In numerical analysis, the Newton–Raphson method, also known simply as Newton's 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 ...
independently developed by
Joseph Raphson
Joseph Raphson (c. 1668 – c. 1715) was an England, 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 bas ...
* 1706 –
John Machin
John Machin (bapt. c. 1686 – June 9, 1751)Anita McConnell, ‘Machin, John (bap. 1686?, died 1751)’, Oxford Dictionary of National Biography, Oxford University Press, 2004. Accessed 26 June 2007. was a professor of astronomy at Gresham ...
develops a quickly converging inverse-tangent series for π and computes π to 100 decimal places
* 1768 –
Leonhard Euler
Leonhard Euler ( ; ; ; 15 April 170718 September 1783) was a Swiss polymath who was active as a mathematician, physicist, astronomer, logician, geographer, and engineer. He founded the studies of graph theory and topology and made influential ...
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 spelled Veha; ; ; born Vehovec, March 23, 1754 – September 26, 1802) was a Slovene mathematician, physicist, and artillery commissioned officer.
Early life
Born into a farmer's family in the small village o ...
improves Machin's formula and computes π to 140 decimal places,
* 1805 – FFT-like algorithm known by
Carl Friedrich Gauss
Johann Carl Friedrich Gauss (; ; ; 30 April 177723 February 1855) was a German mathematician, astronomer, geodesist, and physicist, who contributed to many fields in mathematics and science. He was director of the Göttingen Observatory and ...
* 1842 –
Ada Lovelace
Augusta Ada King, Countess of Lovelace (''née'' Byron; 10 December 1815 – 27 November 1852), also known as Ada Lovelace, was an English mathematician and writer chiefly known for her work on Charles Babbage's proposed mechanical general-pur ...
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). A Fourier transform converts a signal from its original domain (often time or space) to a representation in ...
algorithm presented by
Carle David Tolmé Runge
Carl David Tolmé Runge (; 30 August 1856 – 3 January 1927) was a German Reich, German mathematician, physicist, and spectroscopist.
He was co-developer and co-eponym of the Runge–Kutta method (), in the field of what is today known as numeri ...
* 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 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 method is named after Douglas ...
developed for simulating a quantum many-body system in a stationary state.
* 1934 –
Delaunay triangulation
In computational geometry, a Delaunay triangulation or Delone triangulation of a set of points in the plane subdivides their convex hull into triangles whose circumcircles do not contain any of the points; that is, each circumcircle has its gen ...
developed by
Boris Delaunay
Boris Nikolayevich Delaunay or Delone (; 15 March 1890 – 17 July 1980) was a Soviet and Russian mathematician, mountain climber, and the father of physicist, Nikolai Borisovich Delone. He is best known for the Delaunay triangulation.
Biograph ...
* 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
In computer science, an abstract machine is a theoretical model that allows for a detailed and precise analysis of how a computer system functions. It is similar 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. He was highly influential in the development of theoretical computer ...
, with
others
Others or The Others may refer to:
Fictional characters
* 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''
* Others (''Lost''), mysterious inh ...
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). A Fourier transform converts a signal from its original domain (often time or space) to a representation in ...
Cornelius Lanczos
__NOTOC__
Cornelius (Cornel) Lanczos (, ; born as Kornél Lőwy, until 1906: ''Löwy (Lőwy) Kornél''; February 2, 1893 – June 25, 1974) was a Hungarian-Jewish, Hungarian-American and later Hungarian-Irish mathematician and physicist. Accordi ...
* 1945 –
Merge sort
In computer science, merge sort (also commonly spelled as mergesort and as ) is an efficient, general-purpose, and comparison sort, comparison-based sorting algorithm. Most implementations of merge sort are Sorting algorithm#Stability, stable, wh ...
developed by
John von Neumann
John von Neumann ( ; ; December 28, 1903 – February 8, 1957) was a Hungarian and American mathematician, physicist, computer scientist and engineer. Von Neumann had perhaps the widest coverage of any mathematician of his time, in ...
* 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 ...
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
* 1950 –
Hamming codes
In computer science and telecommunications, Hamming codes are a family of linear error-correcting codes. Hamming codes can detect one-bit and two-bit errors, or correct one-bit errors without detection of uncorrected errors. By contrast, the ...
developed by
Richard Hamming
Richard Wesley Hamming (February 11, 1915 – January 7, 1998) was an American mathematician whose work had many implications for computer engineering and telecommunications. His contributions include the Hamming code (which makes use of a Ha ...
* 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 is Huffman coding, an algorithm developed by ...
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. ...
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 Massachusetts Institute of Technology, MIT. He also worked on the Whirlwi ...
* 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 ...
Norbert Wiener
Norbert Wiener (November 26, 1894 – March 18, 1964) was an American computer scientist, mathematician, and philosopher. He became a professor of mathematics at the Massachusetts Institute of Technology ( MIT). A child prodigy, Wiener late ...
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. It is a greedy algorithm that in each step adds to the forest the lowest-weight edge 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
The Ford–Fulkerson method or Ford–Fulkerson algorithm (FFA) is a greedy algorithm that computes the maximum flow in a flow network. It is sometimes called a "method" instead of an "algorithm" as the approach to finding augmenting paths in a r ...
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 networks.
Early life and educa ...
* 1957 –
Prim's algorithm
In computer science, Prim's algorithm is a greedy algorithm that finds a minimum spanning tree for a Weighted graph, weighted undirected graph. This means it finds a subset of the edge (graph theory), edges that forms a Tree (graph theory), tree ...
developed by
Robert Prim
Robert Clay Prim III (September 25, 1921 – November 18, 2021) was an American mathematician and computer scientist.
Biography
Robert Clay Prim III was born in Sweetwater, Texas on September 25, 1921. In 1941, Prim received his B.S. in Electrical ...
* 1957 –
Bellman–Ford algorithm
The Bellman–Ford algorithm is an algorithm that computes shortest paths from a single source vertex (graph theory), vertex to all of the other vertices in a weighted digraph.
It is slower than Dijkstra's algorithm for the same problem, but more ...
Dijkstra's algorithm
Dijkstra's algorithm ( ) is an algorithm for finding the shortest paths between nodes in a weighted graph, which may represent, for example, a road network. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three ...
developed by
Edsger Dijkstra
Edsger Wybe Dijkstra ( ; ; 11 May 1930 – 6 August 2002) was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist.
Born in Rotterdam in the Netherlands, Dijkstra studied mathematics and physics and the ...
* 1959 –
Shell sort
Shellsort, also known as Shell sort or Shell's method, is an in-place comparison sort. It can be understood as either a generalization of sorting by exchange ( bubble sort) or sorting by insertion ( insertion sort). The method starts by sorting ...
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 formali ...
* 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 orthonormal matrix ''Q'' and an upper triangular matrix ''R''. QR decomp ...
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
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 ...
Michael O. Rabin
Michael Oser Rabin (; born September 1, 1931) is an Israeli mathematician, computer scientist, and recipient of the Turing Award.
Biography Early life and education
Rabin was born in 1931 in Breslau, Germany (today Wrocław, in Poland), th ...
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 ...
AVL tree
In computer science, an AVL tree (named after inventors Adelson-Velsky and Landis) is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by m ...
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 (; born 11 January 1934), also known as C. A. R. Hoare, is a British computer scientist who has made foundational contributions to programming languages, algorithms, operating systems, formal verification, and ...
* 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 ...
David Gale
David Gale (December 13, 1921 – March 7, 2008) was an American mathematician and economist. He was a professor emeritus at the University of California, Berkeley, affiliated with the departments of mathematics, economics, and industrial ...
and
Lloyd Shapley
Lloyd Stowell Shapley (; June 2, 1923 – March 12, 2016) was an American mathematician and Nobel Memorial Prize-winning economist. He contributed to the fields of mathematical economics and especially game theory. Shapley is generally conside ...
* 1964 –
Heapsort
In computer science, heapsort is an efficient, comparison-based sorting algorithm that reorganizes an input array into a heap (a data structure where each node is greater than its children) and then repeatedly removes the largest node from that ...
developed by
J. W. J. Williams
John William Joseph (Bill) Williams (September 1930 – 29 September 2012)Marriage certificate for John William Joseph Williams and Ann Zerny, 3 March 1962.
GRO Reference Information: Year=1962, Qtr=M, Vol=04B, Page=686 (from https://www.familys ...
* 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 analysis, multiresolution methods, v ...
James Cooley
James William Cooley (September 18, 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 ...
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. The Levenshtein distance between two words is the minimum number of single-character edits (i ...
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 ...
Tadao Kasami
was a Japanese information theorist who made significant contributions to error correcting codes. He was the earliest to publish the key ideas for the CYK algorithm, separately discovered by Daniel Younger (1967) and John Cocke (1970).
Kasami ...
* 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 ...
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 ...
* 1965 –
LR parser
In computer science, LR parsers are a type of bottom-up parsing, 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 parser, canonica ...
s invented by
Donald Knuth
Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist and mathematician. He is a professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of comp ...
* 1966 –
Dantzig algorithm Dantzig is a surname. Notable people with the surname include:
* Tobias Dantzig (1884–1956), mathematician from Lithuania, father of George Dantzig
* George Dantzig (1914–2005), American mathematician who introduced the simplex algorithm
* Davi ...
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. This i ...
proposed by
Andrew Viterbi
Andrew James Viterbi (born Andrea Giacomo Viterbi, March 9, 1935) is an electrical engineer and businessman who co-founded Qualcomm Inc. and invented the Viterbi algorithm. He is the Presidential Chair Professor of Electrical Engineering at th ...
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 Rensselaer ...
* 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 ...
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 a ...
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 Dinitz. The algorithm runs in O(, V, ^2, E, ) time ...
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 and mathematician. He is a professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of comp ...
and
Peter B. Bendix
Peter may refer to:
People
* List of people named Peter, a list of people and fictional characters with the given name
* Peter (given name)
** Saint Peter (died 60s), apostle of Jesus, leader of the early Christian Church
* Peter (surname), a sur ...
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 ...
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 in 1970, and indep ...
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, po ...
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 Turin ...
, 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 Dinitz. The algorithm runs in O(, V, ^2, E, ) time ...
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 self-balancing binary search tree data structure noted for fast storage and retrieval of ordered information. The nodes in a red-black tree hold an extra "color" bit, often drawn as red and black, wh ...
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 fo ...
s discovered
* 1973 – RSA encryption algorithm discovered by
Clifford Cocks
Clifford Christopher Cocks (born 28 December 1950) is a British mathematician and cryptographer. In the early 1970s, while working at the United Kingdom Government Communications Headquarters (GCHQ), he developed an early public-key cryptogra ...
R. A. Jarvis
R. or r. may refer to:
* ''Reign'', the period of time during which an Emperor, king, queen, etc., is ruler
* '' Rex'', abbreviated as R., the Latin word meaning King
* ''Regina'', abbreviated as R., the Latin word meaning Queen
* or , abbreviate ...
* 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 ...
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 a professo ...
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 Turin ...
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 retired 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 g ...
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 ...
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 ...
Cylindrical algebraic decomposition
In mathematics, cylindrical algebraic decomposition (CAD) is a notion, along with an algorithm to compute it, that is fundamental for computer algebra and real algebraic geometry. Given a set ''S'' of polynomials in R''n'', a cylindrical algebraic ...
developed by
George E. Collins
George E. Collins (born on January 10, 1928 in Stuart, Iowa – and died on November 21, 2017 in Madison, Wisconsin) was an American mathematician and computer scientist. He is the inventor of Garbage collection (computer science), garbage collec ...
Knuth–Morris–Pratt algorithm
In computer science, the Knuth–Morris–Pratt algorithm (or KMP algorithm) is a string-searching algorithm that searches for occurrences of a "word" W within a main "text string" S by employing the observation that when a mismatch occurs, the wo ...
developed by
Donald Knuth
Donald Ervin Knuth ( ; born January 10, 1938) is an American computer scientist and mathematician. He is a professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of comp ...
and
Vaughan Pratt
Vaughan Pratt (born April 12, 1944) is a Professor, 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 algorit ...
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 encryption algorithm rediscovered by
Ron Rivest
Ronald Linn Rivest (;
born May 6, 1947) is an American cryptographer and computer scientist whose work has spanned the fields of algorithms and combinatorics, cryptography, machine learning, and election integrity.
He is an Institute Profess ...
,
Adi Shamir
Adi Shamir (; born July 6, 1952) is an Israeli cryptographer and inventor. 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 identification sc ...
, 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. He is also known for the creation of the field of DNA computing ...
* 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 Lempel-Ziv 1 (LZ1) and Lempel-Ziv 2 (LZ2) respectively. These two algorithms form the basis ...
algorithm developed by
Abraham Lempel
Abraham Lempel (; 10 February 1936 – 4 February 2023) was 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 (now Lviv ...
and
Jacob Ziv
Jacob Ziv (; 27 November 1931 – 25 March 2023) was an Israeli electrical engineer and information theorist who developed the LZ family of lossless data compression algorithms alongside Abraham Lempel. He is also a namesake of the Ziv–Zakai ...
* 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 analysis, multiresolution methods, v ...
developed independently by
Achi Brandt
Achiezer Brandt (; 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 Institute of Science 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 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 Lempel-Ziv 1 (LZ1) and Lempel-Ziv 2 (LZ2) respectively. These two algorithms form the basis ...
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 Lempel-Ziv 1 (LZ1) and Lempel-Ziv 2 (LZ2) respectively. These two algorithms form the basis ...
by
Abraham Lempel
Abraham Lempel (; 10 February 1936 – 4 February 2023) was 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 (now Lviv ...
and
Jacob Ziv
Jacob Ziv (; 27 November 1931 – 25 March 2023) was an Israeli electrical engineer and information theorist who developed the LZ family of lossless data compression algorithms alongside Abraham Lempel. He is also a namesake of the Ziv–Zakai ...
ellipsoid method
In mathematical optimization, the ellipsoid method is an iterative method for convex optimization, minimizing convex functions over convex sets. The ellipsoid method generates a sequence of ellipsoids whose volume uniformly decreases at every ste ...
developed by
Leonid Khachiyan
Leonid Genrikhovich Khachiyan (; ; May 3, 1952April 29, 2005) was a Soviet and American mathematician and computer scientist.
He was most famous for his ellipsoid algorithm (1979) for linear programming, which was the first such algorithm known ...
* 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.
ID3 is a '' ...
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 ...
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 consider ...
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 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 co ...
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. ...
C. D. Gelatt
C. or c. may refer to:
* Century, sometimes abbreviated as ''c.'' or ''C.'', a period of 100 years
* Letter C, the third letter in the alphabet.
* Cent (currency), abbreviated ''c.'' or ''¢'', a monetary unit that equals of the basic unit of man ...
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 an American statistician at the University of California, Berkeley and a member of the United States National Academy of Sciences.
Breiman's work helped to bridge the gap between statistics an ...
, ''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 Lempel-Ziv 1 (LZ1) and Lempel-Ziv 2 (LZ2) respectively. These two algorithms form the basis ...
by
Terry Welch
Terry Archer Welch (January 20, 1939 – November 22, 1988) 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.
Bi ...
Narendra Karmarkar
Narendra Krishna Karmarkar (born 1956) is an Indian mathematician. He developed Karmarkar's algorithm. He is listed as an ISI highly cited researcher.
He invented one of the first probably polynomial time algorithms for linear programming, w ...
* 1984 –
ACORN PRNG
The ACORN or ″Additive Congruential Random Number″ generators are a robust family of pseudorandom number generators (PRNGs) 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. ...
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 t ...
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) 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 Dirac Med ...
* 1985 –
Splay tree
A splay tree is a binary search tree with the additional property that recently accessed elements are quick to access again. Like self-balancing binary search trees, a splay tree performs basic operations such as insertion, look-up and removal ...
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 ...
Piet Hut
Piet Hut (born September 26, 1952) is a Dutch astrophysicist and interdisciplinary researcher known for his contributions to both scientific research and cross-disciplinary scholarship. He served as the head of the interdisciplinary studies pro ...
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 astronomical object, celestial objects interacting with each other gravitationally.Leimanis and Minorsky: Our interest is with Leimanis, who first d ...
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
Leslie Frederick Greengard (born 1957) 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 20t ...
Special number field sieve
Special or specials may refer to:
Policing
* Specials, Ulster Special Constabulary, the Northern Ireland police force
* Specials, Special Constable, an auxiliary, volunteer, or temporary; police worker or police officer
* Special police forces
...
ACORN PRNG
The ACORN or ″Additive Congruential Random Number″ generators are a robust family of pseudorandom number generators (PRNGs) 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
Paxos is a family of protocols for solving consensus in a network of unreliable or fallible processors.
Consensus is the process of agreeing on one result among a group of participants. This problem becomes difficult when the participants or thei ...
developed by
Leslie Lamport
Leslie B. Lamport (born February 7, 1941) 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 the author ...
* 1989 –
Skip list
In computer science, a skip list (or skiplist) is a Randomized algorithm, probabilistic data structure that allows O(\log n) Average-case complexity, average complexity for search as well as O(\log n) average complexity for insertion within an or ...
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
:
\begin
& ...
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
Joe Peter Buhler (born 1950 in Vancouver, Washington) is an American mathematician known for his contributions to algebraic number theory, algebra and cryptography.
Education and career
Buhler received his undergraduate degree from Reed College ...
,
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. He is also known for the creation of the field of DNA computin ...
* 1990 –
Coppersmith–Winograd algorithm
Because matrix multiplication is such a central operation in many numerical algorithms, much work has been invested in making matrix multiplication algorithms efficient. Applications of matrix multiplication in computational problems are found in m ...
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 (; 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 computational aspects of arit ...
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 alg ...
,
Warren Gish
Warren Richard Gish is the owner of Advanced Biocomputing LLC. He joined Washington University School of Medicine as a junior faculty member in 1994, and was a Research Associate Professor of Genetics from 2002 to 2007.
Education
After initiall ...
,
Webb Miller
Webb Colby Miller (born 1943) is an American bioinformatician who is professor in the Department of Biology and the Department of Computer Science and Engineering at The Pennsylvania State University.
Education
Miller attended Whitman College, ...
,
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
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 (NIH) is the primary agency of the United States government responsible for biomedical and public health research. It was founded in 1887 and is part of the United States Department of Health and Human Service ...
Maurice Herlihy
Maurice Peter Herlihy (born 4 January 1954) is an American computer scientist active in the field of multiprocessor synchronization. Herlihy has contributed to areas including theoretical foundations of wait-free synchronization, linearizable da ...
* 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 practical us ...
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 ...
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.
ID3 is a '' ...
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 ...
to compute the minimum cut of a connected graph by David Karger
* 1994 –
Shor's algorithm Shor's algorithm is a quantum algorithm for finding the prime factors of an integer. It was developed in 1994 by the American mathematician Peter Shor. It is one of the few known quantum algorithms with compelling potential applications and strong ...
developed by
Peter Shor
Peter Williston Shor (born August 14, 1959) is an American theoretical computer scientist known for his work on quantum computation, in particular for devising Shor's algorithm, a quantum algorithm for factoring exponentially faster than the ...
* 1994 –
Burrows–Wheeler transform
The Burrows–Wheeler transform (BWT) rearranges a character string into runs of similar characters, in a manner that can be reversed to recover the original string. Since compression techniques such as move-to-front transform and run-length enc ...
developed by
Michael Burrows Michael Burrows may refer to:
* Michael Burrows (computer scientist), British computer scientist
* Michael Burrows (artist), Australian singer-songwriter
*Michael Burrows (bishop)
Michael Andrew James Burrows (born 1961) is a bishop in the Church ...
Bootstrap aggregating
Bootstrap aggregating, also called bagging (from bootstrap aggregating) or bootstrapping, is a machine learning (ML) ensemble meta-algorithm designed to improve the stability and accuracy of ML classification and regression algorithms. It also ...
(bagging) developed by
Leo Breiman
Leo Breiman (January 27, 1928 – July 5, 2005) was an American statistician at the University of California, Berkeley and a member of the United States National Academy of Sciences.
Breiman's work helped to bridge the gap between statistics an ...
* 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 types of learnin ...
algorithm, the first practical boosting algorithm, was introduced by
Yoav Freund
__NOTOC__
Yoav Freund (; born 1961) is an Israeli professor of computer science at the University of California San Diego who mainly works on machine learning, probability theory and related fields and applications.
He is an alumnus of the Hebr ...
and
Robert Schapire
Robert Elias Schapire is an American computer scientist renowned for his contributions to machine learning theory and its applications. He was formerly a computer science professor at Princeton University before joining Microsoft Research. His re ...
* 1995 – soft-margin
support vector machine
In machine learning, support vector machines (SVMs, also support vector networks) are supervised max-margin models with associated learning algorithms that analyze data for classification and regression analysis. Developed at AT&T Bell Laborato ...
algorithm was published by
Vladimir Vapnik
Vladimir Naumovich Vapnik (; born 6 December 1936) is a statistician, researcher, and academic. He is one of the main developers of the Vapnik–Chervonenkis theory of statistical learning and the co-inventor of the support-vector machine method ...
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
In computer science, Ukkonen's algorithm is a linear-time, online algorithm for constructing suffix tree
In computer science, a suffix tree (also called PAT tree or, in an earlier form, position tree) is a compressed trie containing all the suff ...
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, is a quantum algorithm for unstructured search that finds with high probability the unique input to a black box function that produces a particular output value, ...
developed by
Lov K. Grover
Lov Kumar Grover (born 1961) is an Indian-American computer scientist. He is the originator of the Grover database search algorithm used in quantum computing. Grover's 1996 algorithm won renown as the second major algorithm proposed for quant ...
* 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 ...
developed by
Hans Dobbertin
Hans Dobbertin (17 April, 1952 – 2 February, 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 t ...
, and
Bart Preneel
Bart Preneel (born 15 October 1963 in Leuven, Belgium) is a Belgium, Belgian cryptographer and cryptanalyst. He is a professor at Katholieke Universiteit Leuven, in the COSIC group.
He was the president of the International Association for Crypt ...
* 1997 –
Mersenne Twister
The Mersenne Twister is a general-purpose pseudorandom number generator (PRNG) developed in 1997 by and . Its name derives from the choice of a Mersenne prime as its period length.
The Mersenne Twister was created specifically to address most of ...
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. Accordin ...
algorithm was published by
Larry Page
Lawrence Edward Page (born March 26, 1973) is an American businessman, computer engineer and computer scientist best known for co-founding Google with Sergey Brin.
Page was chief executive officer of Google from 1997 until August 2001 when ...
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 (software), Samba file server, and co-inventor of the rsync algorithm.
He has analysed complex proprieta ...
* 1999 –
gradient boosting
Gradient boosting is a machine learning technique based on boosting in a functional space, where the target is ''pseudo-residuals'' instead of residuals as in traditional boosting. It gives a prediction model in the form of an ensemble of weak ...
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 (CSPRNG) devised by John Kelsey, Bruce Schneier, and Niels Ferguson and published in 1999. The Yarrow algorithm is explicitly unpatented, royalty-free, and open sou ...
designed by
Bruce Schneier
Bruce Schneier (; born January 15, 1963) is an American cryptographer, computer security professional, privacy specialist, and writer. Schneier is an Adjunct Lecturer in Public Policy at the Harvard Kennedy School and a Fellow at the Berkman ...
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 used in the 7z format of the 7-Zip archiver since 2001. This algorithm uses a Dictionary coder, dictionary compression scheme ...
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
BitTorrent is a Protocol (computing), communication protocol for peer-to-peer file sharing (P2P), which enables users to distribute data and electronic files over the Internet in a Decentralised system, decentralized manner. The protocol is d ...
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 scientist ...
developed by
Manindra Agrawal
Manindra Agrawal (born 20 May 1966) is an Indian computer scientist and director of Indian Institute of Technology, Kanpur. He is also a professor at the Department of Computer Science and Engineering at the Indian Institute of Technology, Ka ...
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
The Packrat parser is a type of Parsing, parser that shares similarities with the recursive descent parser in its construction. However, it differs because it takes parsing expression grammar, parsing expression grammars (PEGs) as input rather t ...
Bitcoin
Bitcoin (abbreviation: BTC; Currency symbol, sign: ₿) is the first Decentralized application, decentralized cryptocurrency. Based on a free-market ideology, bitcoin was invented in 2008 when an unknown entity published a white paper under ...
a first trust-less decentralized cryptocurrency system is published
John Ousterhout
John Kenneth Ousterhout (, born October 15, 1954) is an American computer scientist. He is a professor of computer science at Stanford University. He founded Electric Cloud with John Graham-Cumming.
Ousterhout was previously a professor of com ...
* 2015 – YOLO (“
You Only Look Once
You Only Look Once (YOLO) is a series of real-time object detection systems based on convolutional neural networks. First introduced by Joseph Redmon et al. in 2015, YOLO has undergone several iterations and improvements, becoming one of the most ...
”) is an effective real-time object recognition algorithm, first described by
Joseph Redmon
Joseph is a common male name, derived from the Hebrew (). "Joseph" is used, along with " Josef", mostly in English, French and partially German languages. This spelling is also found as a variant in the languages of the modern-day Nordic count ...
Algorithms
In mathematics and computer science, an algorithm () is a finite sequence of mathematically rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for per ...
Algorithms
In mathematics and computer science, an algorithm () is a finite sequence of mathematically rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for per ...