Timeline of algorithms
Encyclopedia
The following timeline
Chronology
Chronology is the science of arranging events in their order of occurrence in time, such as the use of a timeline or sequence of events. It is also "the determination of the actual temporal sequence of past events".Chronology is part of periodization...

outlines the development of algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

s
(mainly "mathematical recipes") since their inception.

Before modern era

  • Before - Writing
    Writing
    Writing is the representation of language in a textual medium through the use of a set of signs or symbols . It is distinguished from illustration, such as cave drawing and painting, and non-symbolic preservation of language via non-textual media, such as magnetic tape audio.Writing most likely...

     about "recipes" (on cooking, rituals, agriculture and other themes)
  • c. 1600 BC - Babylonia
    Babylonia
    Babylonia was an ancient cultural region in central-southern Mesopotamia , with Babylon as its capital. Babylonia emerged as a major power when Hammurabi Babylonia was an ancient cultural region in central-southern Mesopotamia (present-day Iraq), with Babylon as its capital. Babylonia emerged as...

    ns develop earliest known algorithms for factorization
    Factorization
    In mathematics, factorization or factoring is the decomposition of an object into a product of other objects, or factors, which when multiplied together give the original...

     and finding square root
    Square root
    In mathematics, a square root of a number x is a number r such that r2 = x, or, in other words, a number r whose square is x...

    s
  • c. 300 BC - Euclid's algorithm
    Euclidean algorithm
    In mathematics, the Euclidean algorithm is an efficient method for computing the greatest common divisor of two integers, also known as the greatest common factor or highest common factor...

  • c. 200 BC - the Sieve of Eratosthenes
    Sieve of Eratosthenes
    In mathematics, the sieve of Eratosthenes , one of a number of prime number sieves, is a simple, ancient algorithm for finding all prime numbers up to a specified integer....

  • 263 AD - Gaussian elimination
    Gaussian elimination
    In linear algebra, Gaussian elimination is an algorithm for solving systems of linear equations. It can also be used to find the rank of a matrix, to calculate the determinant of a matrix, and to calculate the inverse of an invertible square matrix...

     described by Liu Hui
    Liu Hui
    Liu Hui was a mathematician of the state of Cao Wei during the Three Kingdoms period of Chinese history. In 263, he edited and published a book with solutions to mathematical problems presented in the famous Chinese book of mathematic known as The Nine Chapters on the Mathematical Art .He was a...

  • 628 - Chakravala method
    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, although some attribute it to Jayadeva...

     described by Brahmagupta
    Brahmagupta
    Brahmagupta was an Indian mathematician and astronomer who wrote many important works on mathematics and astronomy. His best known work is the Brāhmasphuṭasiddhānta , written in 628 in Bhinmal...

  • c. 820 - Al-Khawarizmi described algorithms for solving linear equation
    Linear equation
    A linear equation is an algebraic equation in which each term is either a constant or the product of a constant and a single variable....

    s and quadratic equation
    Quadratic equation
    In mathematics, a quadratic equation is a univariate polynomial equation of the second degree. A general quadratic equation can be written in the formax^2+bx+c=0,\,...

    s in his Algebra
    The Compendious Book on Calculation by Completion and Balancing
    , also known under a shorter name spelled as Hisab al-jabr w’al-muqabala, Kitab al-Jabr wa-l-Muqabala and other transliterations) is a mathematical book written in Arabic in approximately AD 820 by the Persian (Arabic for "The Compendious Book on Calculation by Completion and Balancing", in...

    ; the word algorithm comes from his name
  • 825 - Al-Khawarizmi described the algorism
    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...

    , algorithms for using the Hindu-Arabic numerals
    Arabic numerals
    Arabic numerals or Hindu numerals or Hindu-Arabic numerals or Indo-Arabic numerals are the ten digits . They are descended from the Hindu-Arabic numeral system developed by Indian mathematicians, in which a sequence of digits such as "975" is read as a numeral...

    , 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
    Algorithm
    In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...

     (Latin
    Latin
    Latin is an Italic language originally spoken in Latium and Ancient Rome. It, along with most European languages, is a descendant of the ancient Proto-Indo-European language. Although it is considered a dead language, a number of scholars and members of the Christian clergy speak it fluently, and...

     algorithmus) with a meaning "calculation method"
  • c. 850 - Cryptanalysis
    Cryptanalysis
    Cryptanalysis is the study of methods for obtaining the meaning of encrypted information, without access to the secret information that is normally required to do so. Typically, this involves knowing how the system works and finding a secret key...

     and frequency analysis
    Frequency analysis
    In cryptanalysis, frequency analysis 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....

     algorithms developed by Al-Kindi
    Al-Kindi
    ' , known as "the Philosopher of the Arabs", was a Muslim Arab philosopher, mathematician, physician, and musician. Al-Kindi was the first of the Muslim peripatetic philosophers, and is unanimously hailed as the "father of Islamic or Arabic philosophy" for his synthesis, adaptation and promotion...

     (Alkindus) in A Manuscript on Deciphering Cryptographic Messages, which contains algorithms on breaking encryption
    Encryption
    In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...

    s and cipher
    Cipher
    In cryptography, a cipher 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. In non-technical usage, a “cipher” is the same thing as a “code”; however, the concepts...

    s.
  • c. 1025 - Ibn al-Haytham (Alhazen), was the first mathematician to derive the formula for the sum of the fourth powers
    Exponentiation
    Exponentiation is a mathematical operation, written as an, involving two numbers, the base a and the exponent n...

    , and in turn, he develops an algorithm for determining the general formula for the sum of any integral
    Integral
    Integration is an important concept in mathematics and, together with its inverse, differentiation, is one of the two main operations in calculus...

     powers, which was fundamental to the development of integral calculus
    Integral
    Integration is an important concept in mathematics and, together with its inverse, differentiation, is one of the two main operations in calculus...

  • c. 1400 - Ahmad al-Qalqashandi
    Ahmad al-Qalqashandi
    Shihab al-Din abu 'l-Abbas Ahmad ben Ali ben Ahmad Abd Allah al-Qalqashandi was a medieval Egyptian writer and mathematician born in a village in the Nile Delta. He is the author of Subh al-a 'sha, a fourteen volume encyclopedia in Arabic, which included a section on cryptology...

     gives a list of cipher
    Cipher
    In cryptography, a cipher 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. In non-technical usage, a “cipher” is the same thing as a “code”; however, the concepts...

    s in his Subh al-a'sha which include both substitution
    Substitution cipher
    In cryptography, a substitution cipher is a method of encryption by which units of plaintext are replaced with ciphertext according to a regular system; the "units" may be single letters , pairs of letters, triplets of letters, mixtures of the above, and so forth...

     and transposition
    Transposition cipher
    In cryptography, a transposition cipher is a method of encryption by which the positions held by units of plaintext are shifted according to a regular system, so that the ciphertext constitutes a permutation of the plaintext. That is, the order of the units is changed...

    , and for the first time, a cipher with multiple substitutions for each plaintext
    Plaintext
    In cryptography, plaintext is information a sender wishes to transmit to a receiver. Cleartext is often used as a synonym. Before the computer era, plaintext most commonly meant message text in the language of the communicating parties....

     letter; he also gives an exposition on and worked example of cryptanalysis
    Cryptanalysis
    Cryptanalysis is the study of methods for obtaining the meaning of encrypted information, without access to the secret information that is normally required to do so. Typically, this involves knowing how the system works and finding a secret key...

    , including the use of tables of letter frequencies
    Letter frequencies
    The frequency of letters in text has often been studied for use in cryptography, and frequency analysis in particular. No exact letter frequency distribution underlies a given language, since all writers write slightly differently. Linotype machines sorted the letters' frequencies as etaoin shrdlu...

     and sets of letters which can not occur together in one word

Before 1940

  • 1614 - John Napier
    John Napier
    John Napier of Merchiston – also signed as Neper, Nepair – named Marvellous Merchiston, was a Scottish mathematician, physicist, astronomer & astrologer, and also the 8th Laird of Merchistoun. He was the son of Sir Archibald Napier of Merchiston. John Napier is most renowned as the discoverer...

     develops method for performing calculations using logarithm
    Logarithm
    The logarithm of a number is the exponent by which another fixed value, the base, has to be raised to produce that number. For example, the logarithm of 1000 to base 10 is 3, because 1000 is 10 to the power 3: More generally, if x = by, then y is the logarithm of x to base b, and is written...

    s
  • 1671 - Newton–Raphson method
    Newton's method
    In numerical analysis, Newton's method , named after Isaac Newton and Joseph Raphson, is a method for finding successively better approximations to the roots of a real-valued function. The algorithm is first in the class of Householder's methods, succeeded by Halley's method...

     developed by Isaac Newton
    Isaac Newton
    Sir Isaac Newton PRS was an English physicist, mathematician, astronomer, natural philosopher, alchemist, and theologian, who has been "considered by many to be the greatest and most influential scientist who ever lived."...

  • 1690 - Newton–Raphson method
    Newton's method
    In numerical analysis, Newton's method , named after Isaac Newton and Joseph Raphson, is a method for finding successively better approximations to the roots of a real-valued function. The algorithm is first in the class of Householder's methods, succeeded by Halley's method...

     independently developed by Joseph Raphson
    Joseph Raphson
    Joseph Raphson was an English mathematician known best for the Newton–Raphson method. Little is known about his life, and even his exact years of birth and death are unknown, although the mathematical historian Florian Cajori provided the approximate dates 1648–1715. Raphson attended...

  • 1706 - John Machin
    John Machin
    John Machin, , a professor of astronomy at Gresham College, London, is best known for developing a quickly converging series for Pi in 1706 and using it to compute Pi to 100 decimal places.Machin's formula is:...

     develops a quickly converging inverse-tangent series for π and computes π to 100 decimal places,
  • 1789 - Jurij Vega
    Jurij Vega
    Baron Jurij Bartolomej Vega was a Slovene mathematician, physicist and artillery officer.-Early life:...

     improves Machin's formula and computes π to 140 decimal places,

  • 1805 - FFT-like algorithm known by Carl Friedrich Gauss
    Carl Friedrich Gauss
    Johann Carl Friedrich Gauss was a German mathematician and scientist who contributed significantly to many fields, including number theory, statistics, analysis, differential geometry, geodesy, geophysics, electrostatics, astronomy and optics.Sometimes referred to as the Princeps mathematicorum...

  • 1903 - A Fast Fourier Transform
    Fast Fourier transform
    A fast Fourier transform is an efficient algorithm to compute the discrete Fourier transform and its inverse. "The FFT has been called the most important numerical algorithm of our lifetime ." There are many distinct FFT algorithms involving a wide range of mathematics, from simple...

     algorithm presented by Carle David Tolme Runge
    Carle David Tolmé Runge
    Carl David Tolmé Runge was a 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 numerical analysis.-Biography:...

  • 1926 - Borůvka's algorithm
    Boruvka's algorithm
    Borůvka's algorithm is an algorithm for finding a minimum spanning tree in a graph for which all edge weights are distinct.It was first published in 1926 by Otakar Borůvka as a method of constructing an efficient electricity network for Moravia....

  • 1934 - Delaunay triangulation
    Delaunay triangulation
    In mathematics and computational geometry, a Delaunay triangulation for a set P of points in a plane is a triangulation DT such that no point in P is inside the circumcircle of any triangle in DT. Delaunay triangulations maximize the minimum angle of all the angles of the triangles in the...

     developed by Boris Delaunay
    Boris Delaunay
    Boris Nikolaevich Delaunay or Delone was one of the first Russian mountain climbers and a Soviet/Russian mathematician, and the father of physicist Nikolai Borisovich Delone....

  • 1936 - Turing machine
    Turing machine
    A Turing machine is a theoretical device that manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm, and is particularly useful in explaining the functions of a CPU inside a...

    , an abstract machine
    Abstract machine
    An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in automata theory...

     developed by Alan Turing
    Alan Turing
    Alan Mathison Turing, OBE, FRS , was an English mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, providing a formalisation of the concepts of "algorithm" and "computation" with the Turing machine, which played a...

    , with others developed the modern notion of algorithm.

1940s

  • 1942 - A Fast Fourier Transform
    Fast Fourier transform
    A fast Fourier transform is an efficient algorithm to compute the discrete Fourier transform and its inverse. "The FFT has been called the most important numerical algorithm of our lifetime ." There are many distinct FFT algorithms involving a wide range of mathematics, from simple...

     algorithm developed by G.C. Danielson and Cornelius Lanczos
    Cornelius Lanczos
    Cornelius Lanczos Löwy Kornél was a Hungarian-Jewish mathematician and physicist, who was born on February 2, 1893, and died on June 25, 1974....

  • 1945 - Merge sort
    Merge sort
    Merge sort is an O comparison-based sorting algorithm. Most implementations produce a stable sort, meaning that the implementation preserves the input order of equal elements in the sorted output. It is a divide and conquer algorithm...

     developed by John von Neumann
    John von Neumann
    John von Neumann was a Hungarian-American mathematician and polymath who made major contributions to a vast number of fields, including set theory, functional analysis, quantum mechanics, ergodic theory, geometry, fluid dynamics, economics and game theory, computer science, numerical analysis,...

  • 1947 - Simplex algorithm
    Simplex algorithm
    In mathematical optimization, Dantzig's simplex algorithm is a popular algorithm for linear programming. The journal Computing in Science and Engineering listed it as one of the top 10 algorithms of the twentieth century....

     developed by George Dantzig
    George Dantzig
    George Bernard Dantzig was an American mathematical scientist who made important contributions to operations research, computer science, economics, and statistics....


1950s

  • 1952 - Huffman coding
    Huffman coding
    In computer science and information theory, Huffman coding is an entropy encoding algorithm used for lossless data compression. The term refers to the use of a variable-length code table for encoding a source symbol where the variable-length code table has been derived in a particular way based on...

     developed by David A. Huffman
    David A. Huffman
    David Albert Huffman was a pioneer in computer science. He is well-known for his Huffman coding. David Huffman died at the age of 74 after a 10-month battle with cancer.-Education:...

  • 1953 - Simulated annealing
    Simulated annealing
    Simulated annealing is a generic probabilistic metaheuristic for the global optimization problem of locating a good approximation to the global optimum of a given function in a large search space. It is often used when the search space is discrete...

     introduced by Nicholas Metropolis
    Nicholas Metropolis
    Nicholas Constantine Metropolis was a Greek American physicist.-Work:Metropolis received his B.Sc. and Ph.D. degrees in physics at the University of Chicago...

  • 1954 - Radix sort
    Radix sort
    In computer science, radix sort is a non-comparative integer sorting algorithm that sorts data with integer keys by grouping keys by the individual digits which share the same significant position and value...

     computer algorithm developed by Harold H. Seward
    Harold H. Seward
    Harold H. Seward is a computer scientist and the developer of the radix sort algorithm in 1954 at MIT. He also developed the counting sort.-References:...

  • 1956 - Kruskal's algorithm
    Kruskal's algorithm
    Kruskal's algorithm is an algorithm in graph theory that finds a minimum spanning tree for a connected weighted graph. This means it finds a subset of the edges that forms a tree that includes every vertex, where the total weight of all the edges in the tree is minimized...

     developed by Joseph Kruskal
    Joseph Kruskal
    Joseph Bernard Kruskal, Jr. was an American mathematician, statistician, computer scientist and psychometrician. He was a student at the University of Chicago and at Princeton University, where he completed his Ph.D. in 1954, nominally under Albert W...

  • 1957 - Prim's algorithm
    Prim's algorithm
    In computer science, Prim's algorithm is a greedy algorithm that finds a minimum spanning tree for a connected weighted undirected graph. This means it finds a subset of the edges that forms a tree that includes every vertex, where the total weight of all the edges in the tree is minimized...

     developed by Robert Prim
  • 1957 - Bellman–Ford algorithm developed by Richard E. Bellman and L. R. Ford, Jr.
    L. R. Ford, Jr.
    Lester Randolph Ford, Jr. is an American mathematician specializing in network flow problems. He is the son of mathematician Lester R. Ford, Sr..Ford's paper with D. R...

  • 1959 - Dijkstra's algorithm
    Dijkstra's algorithm
    Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956 and published in 1959, is a graph search algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree...

     developed by Edsger Dijkstra
    Edsger Dijkstra
    Edsger Wybe Dijkstra ; ) was a Dutch computer scientist. He received the 1972 Turing Award for fundamental contributions to developing programming languages, and was the Schlumberger Centennial Chair of Computer Sciences at The University of Texas at Austin from 1984 until 2000.Shortly before his...

  • 1959 - Shell sort
    Shell sort
    Shellsort, also known as Shell sort or Shell's method is an in-place comparison sort. It generalizes an exchanging sort, such as insertion or bubble sort, by allowing the comparison and exchange of elements that lie far apart. Its first version was published by Donald Shell in 1959. The running...

     developed by Donald L. Shell
  • 1959 - De Casteljau's algorithm
    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...

     developed by Paul de Casteljau
    Paul de Casteljau
    Paul de Casteljau is a French physicist and mathematician. In 1959, while working at Citroën, he developed an algorithm for computation of Bézier curves, which would later be formalized and popularized by engineer Pierre Bézier...


1960s

  • 1960 - Karatsuba multiplication
  • 1962 - AVL tree
    AVL tree
    In computer science, an AVL tree is a self-balancing binary search tree, and it was the first such data structure to be invented. In an AVL tree, the heights of the two child subtrees of any node differ by at most one. Lookup, insertion, and deletion all take O time in both the average and worst...

    s
  • 1962 - Quicksort developed by C. A. R. Hoare
    C. A. R. Hoare
    Sir Charles Antony Richard Hoare , commonly known as Tony Hoare or C. A. R. Hoare, is a British computer scientist best known for the development of Quicksort, one of the world's most widely used sorting algorithms...

  • 1962 - Ford–Fulkerson algorithm developed by L. R. Ford, Jr.
    L. R. Ford, Jr.
    Lester Randolph Ford, Jr. is an American mathematician specializing in network flow problems. He is the son of mathematician Lester R. Ford, Sr..Ford's paper with D. R...

     and D. R. Fulkerson
    D. R. Fulkerson
    Delbert Ray Fulkerson was a mathematician who co-developed the Ford-Fulkerson algorithm, one of the most well-known algorithms to solve the maximum flow problem in networks....

  • 1962 - Bresenham's line algorithm
    Bresenham's line algorithm
    The Bresenham line algorithm is an algorithm which determines which points in an n-dimensional raster should be plotted in order to form a close approximation to a straight line between two given points...

     developed by Jack E. Bresenham
    Jack E. Bresenham
    Jack Elton Bresenham is a former professor of computer science.-Biography:He retired from 27 years of service at IBM as a Senior Technical Staff Member in 1987. He taught for 16 years at Winthrop University and has nine patents...

  • 1964 - Heapsort
    Heapsort
    Heapsort is a comparison-based sorting algorithm to create a sorted array , and is part of the selection sort family. Although somewhat slower in practice on most machines than a well implemented quicksort, it has the advantage of a more favorable worst-case O runtime...

     developed by J. W. J. Williams
  • 1964 - multigrid methods first proposed by R. P. Fedorenko
  • 1965 - Cooley–Tukey algorithm rediscovered by James Cooley
    James Cooley
    Dr. James W. Cooley is an American mathematician. James William 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 applied mathematics from Columbia University...

     and John Tukey
    John Tukey
    John Wilder Tukey ForMemRS was an American statistician.- Biography :Tukey was born in New Bedford, Massachusetts in 1915, and obtained a B.A. in 1936 and M.Sc. in 1937, in chemistry, from Brown University, before moving to Princeton University where he received a Ph.D...

  • 1965 - Levenshtein distance
    Levenshtein distance
    In information theory and computer science, the Levenshtein distance is a string metric for measuring the amount of difference between two sequences...

     developed by Vladimir Levenshtein
    Vladimir Levenshtein
    Vladimir Iosifovich Levenshtein is a Russian scientist who did research in information theory and error-correcting codes. Among other contributions, he is known for the Levenshtein distance algorithm, which he developed in 1965....

  • 1965 - Cocke–Younger–Kasami (CYK) algorithm
    CYK algorithm
    The Cocke–Younger–Kasami algorithm is a parsing algorithm for context-free grammars. It employs bottom-up parsing and dynamic programming....

     independently developed by Tadao Kasami
    Tadao Kasami
    was a noted Japanese information theorist who made significant contributions to error correcting codes.Kasami was born in Kobe, Japan, and studied electrical engineering at Osaka University, where he received his B.E. degree in 1958, M.E. in 1960, and Ph.D. in 1963. He then joined the faculty,...

  • 1966 - Dantzig algorithm for shortest path in a graph with negative edges
  • 1967 - Viterbi algorithm
    Viterbi algorithm
    The Viterbi algorithm is a dynamic programming algorithm for finding the most likely sequence of hidden states – called the Viterbi path – that results in a sequence of observed events, especially in the context of Markov information sources, and more generally, hidden Markov models...

     proposed by Andrew Viterbi
    Andrew Viterbi
    Andrew James Viterbi, Ph.D. is an Italian-American electrical engineer and businessman who co-founded Qualcomm Inc....

  • 1967 - Cocke–Younger–Kasami (CYK) algorithm
    CYK algorithm
    The Cocke–Younger–Kasami algorithm is a parsing algorithm for context-free grammars. It employs bottom-up parsing and dynamic programming....

     independently developed by Daniel H. Younger
  • 1968 - A* graph search algorithm described by Peter Hart
    Peter E. Hart
    Peter E. Hart is an American computer scientist and entrepreneur. He was chairman and president of Ricoh Innovations, which he founded in 1997...

    , Nils Nilsson, and Bertram Raphael
    Bertram Raphael
    Bertram Raphael is an American computer scientist known for his contributions to artificial intelligence.-Biography:Raphael was born in 1936 in in New York...

    .

1970s

  • 1970 - Knuth–Bendix completion algorithm developed by Donald Knuth
    Donald Knuth
    Donald Ervin Knuth is a computer scientist and Professor Emeritus at Stanford University.He is the author of the seminal multi-volume work The Art of Computer Programming. Knuth has been called the "father" of the analysis of algorithms...

     and Peter B. Bendix
  • 1970 - BFGS method
    BFGS method
    In numerical optimization, the Broyden–Fletcher–Goldfarb–Shanno method is a method for solving nonlinear optimization problems ....

     of the quasi-Newton
    Quasi-Newton method
    In optimization, quasi-Newton methods are algorithms for finding local maxima and minima of functions. Quasi-Newton methods are based on...

     class
  • 1972 - Graham scan
    Graham scan
    The Graham scan is a method of computing the convex hull of a finite set of points in the plane with time complexity O. It is named after Ronald Graham, who published the original algorithm in 1972...

     developed by Ronald Graham
    Ronald Graham
    Ronald Lewis Graham is a mathematician credited by the American Mathematical Society as being "one of the principal architects of the rapid development worldwide of discrete mathematics in recent years"...

  • 1972 - Red-black tree
    Red-black tree
    A red–black tree is a type of self-balancing binary search tree, a data structure used in computer science, typically to implement associative arrays. The original structure was invented in 1972 by Rudolf Bayer and named "symmetric binary B-tree," but acquired its modern name in a paper in 1978 by...

    s and B-tree
    B-tree
    In computer science, a B-tree is a tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree is a generalization of a binary search tree in that a node can have more than two children...

    s discovered
  • 1973 - RSA encryption algorithm discovered by Clifford Cocks
    Clifford Cocks
    Clifford Christopher Cocks, CB, is a British mathematician and cryptographer at GCHQ.He invented the widely-used encryption algorithm now commonly known as RSA, about three years before it was independently developed by Rivest, Shamir, and Adleman at MIT...

  • 1973 - Jarvis march algorithm developed by R. A. Jarvis
  • 1974 - Pollard's p − 1 algorithm developed by John Pollard
    John Pollard (mathematician)
    John M. Pollard is a British mathematician who has invented algorithms for the factorization of large numbers and for the calculation of discrete logarithms....

  • 1975 - Genetic algorithm
    Genetic algorithm
    A genetic algorithm is a search heuristic that mimics the process of natural evolution. This heuristic is routinely used to generate useful solutions to optimization and search problems...

    s popularized by John Holland
    John Henry Holland
    John Henry Holland is an American scientist and Professor of Psychology and Professor of Electrical Engineering and Computer Science at the University of Michigan, Ann Arbor. He is a pioneer in complex systems and nonlinear science. He is known as the father of genetic algorithms. He was awarded...

  • 1975 - Pollard's rho algorithm
    Pollard's rho algorithm
    Pollard's rho algorithm is a special-purpose integer factorization algorithm. It was invented by John Pollard in 1975. It is particularly effective at splitting composite numbers with small factors.-Core ideas:...

     developed by John Pollard
    John Pollard (mathematician)
    John M. Pollard is a British mathematician who has invented algorithms for the factorization of large numbers and for the calculation of discrete logarithms....

  • 1975 - Aho–Corasick string matching algorithm
    Aho–Corasick string matching algorithm
    The Aho–Corasick string matching algorithm is a string searching algorithm invented by Alfred V. Aho and Margaret J. Corasick. It is a kind of dictionary-matching algorithm that locates elements of a finite set of strings within an input text. It matches all patterns simultaneously...

     developed by Alfred V. Aho and Margaret J. Corasick
  • 1976 - Salamin–Brent algorithm independently discovered by Eugene Salamin and Richard Brent
    Richard Brent (scientist)
    Richard Peirce Brent is an Australian mathematician and computer scientist, born in 1946. He holds the position of Distinguished Professor of Mathematics and Computer Science with a joint appointment in the Mathematical Sciences Institute and the College of Engineering and Computer Science at...

  • 1976 - Knuth–Morris–Pratt algorithm
    Knuth–Morris–Pratt algorithm
    The Knuth–Morris–Pratt string searching 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 sufficient information to determine where the next match could begin, thus bypassing...

     developed by Donald Knuth
    Donald Knuth
    Donald Ervin Knuth is a computer scientist and Professor Emeritus at Stanford University.He is the author of the seminal multi-volume work The Art of Computer Programming. Knuth has been called the "father" of the analysis of algorithms...

     and Vaughan Pratt and independently by J. H. Morris
  • 1977 - Boyer–Moore string search algorithm
    Boyer–Moore string search algorithm
    The Boyer–Moore string search algorithm is a particularly efficient string searching algorithm, and it has been the standard benchmark for the practical string search literature. It was developed by Bob 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
    Ron Rivest
    Ronald Linn Rivest is a cryptographer. He is the Andrew and Erna Viterbi Professor of Computer Science at MIT's Department of Electrical Engineering and Computer Science and a member of MIT's Computer Science and Artificial Intelligence Laboratory...

    , Adi Shamir
    Adi Shamir
    Adi Shamir is an Israeli cryptographer. He is a co-inventor of the RSA algorithm , a co-inventor of the Feige–Fiat–Shamir identification scheme , one of the inventors of differential cryptanalysis and has made numerous contributions to the fields of cryptography and computer...

    , and Len Adleman
  • 1977 - LZ77 algorithm developed by Abraham Lempel
    Abraham Lempel
    Abraham Lempel is an Israeli computer scientist and one of the fathers of the LZ family of lossless data compression algorithms.Lempel was born on 10 February 1936 in Lwów, Poland . He studied at Technion - Israel Institute of Technology, and received a B.Sc. in 1963, M.Sc. in 1965, and D.Sc. in...

     and Jacob Ziv
    Jacob Ziv
    Jacob Ziv is an Israeli computer scientist who, along with Abraham Lempel, developed the LZ family of lossless data compression algorithms.-Biography:...

  • 1977 - multigrid methods developed independently by Achi Brandt
    Achi Brandt
    Achi Brandt is an Israeli mathematician, noted for his pioneering contributions to multigrid methods.Achi Brandt earned his Ph.D. degree at the Weizmann Institute of Science in 1965, with a thesis on numerical methods in hydrodynamics and magnetohydrodynamics...

     and Wolfgang Hackbusch
    Wolfgang Hackbusch
    Wolfgang Hackbusch is a German mathematician, known for his pioneering research in multigrid methods and later hierarchical matrices, a concept generalizing the fast multipole method...

  • 1978 - LZ78 algorithm developed from LZ77 by Abraham Lempel
    Abraham Lempel
    Abraham Lempel is an Israeli computer scientist and one of the fathers of the LZ family of lossless data compression algorithms.Lempel was born on 10 February 1936 in Lwów, Poland . He studied at Technion - Israel Institute of Technology, and received a B.Sc. in 1963, M.Sc. in 1965, and D.Sc. in...

     and Jacob Ziv
    Jacob Ziv
    Jacob Ziv is an Israeli computer scientist who, along with Abraham Lempel, developed the LZ family of lossless data compression algorithms.-Biography:...

  • 1978 - Bruun's algorithm
    Bruun's FFT algorithm
    Bruun's algorithm is a fast Fourier transform algorithm based on an unusual recursive polynomial-factorization approach, proposed for powers of two by G. Bruun in 1978 and generalized to arbitrary even composite sizes by H. Murakami in 1996...

     proposed for powers of two by Georg Bruun
  • 1979 - Khachiyan's ellipsoid method
    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 optimal solution in a finite number of steps.The...

     developed by Leonid Khachiyan
    Leonid Khachiyan
    Leonid Genrikhovich Khachiyan was a Soviet mathematician of Armenian descent who taught Computer Science at Rutgers University. He was most famous for his Ellipsoid algorithm for linear programming, which was the first such algorithm known to have a polynomial running time...

  • 1979 - ID3
    ID3 algorithm
    In decision tree learning, ID3 is an algorithm used to generate a decision tree invented by Ross Quinlan. ID3 is the precursor to the C4.5 algorithm.-Algorithm:The ID3 algorithm can be summarized as follows:...

     decision tree algorithm developed by Ross Quinlan
    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...


1980s

  • 1981 - Quadratic sieve
    Quadratic sieve
    The quadratic sieve algorithm is a modern integer factorization algorithm and, in practice, the second fastest method known . It is still the fastest for integers under 100 decimal digits or so, and is considerably simpler than the number field sieve...

     developed by Carl Pomerance
    Carl Pomerance
    Carl Bernard Pomerance is a well-known 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 has at least 7 distinct prime factors. He immediately joined the faculty at the...

  • 1983 - Simulated annealing
    Simulated annealing
    Simulated annealing is a generic probabilistic metaheuristic for the global optimization problem of locating a good approximation to the global optimum of a given function in a large search space. It is often used when the search space is discrete...

     developed by S. Kirkpatrick, C. D. Gelatt and M. P. Vecchi
  • 1983 - Classification and regression trees
    Cart
    A cart is a vehicle designed for transport, using two wheels and normally pulled by one or a pair of draught animals. A handcart is pulled or pushed by one or more people...

     (CART) algorithm developed by Leo Breiman
    Leo Breiman
    Leo Breiman 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 Science....

    , et al.
  • 1984 - LZW algorithm developed from LZ78 by Terry Welch
    Terry Welch
    Terry A. Welch is an American computer scientist. Along with Abraham Lempel and Jacob Ziv, he developed the lossless LZW compression algorithm which was published in 1984.Welch received a B.S., M.S. and Ph.D. degree at MIT in electrical engineering...

  • 1984 - Karmarkar's interior-point algorithm developed by Narendra Karmarkar
    Narendra Karmarkar
    Narendra K. Karmarkar is an Indian mathematician, renowned for developing Karmarkar's algorithm. He is listed as an ISI highly cited researcher.- Biography :...

  • 1985 - Simulated annealing
    Simulated annealing
    Simulated annealing is a generic probabilistic metaheuristic for the global optimization problem of locating a good approximation to the global optimum of a given function in a large search space. It is often used when the search space is discrete...

     independently developed by V. Cerny
  • 1985 - Splay tree
    Splay tree
    A splay tree is a self-adjusting binary search tree with the additional property that recently accessed elements are quick to access again. It performs basic operations such as insertion, look-up and removal in O amortized time. For many sequences of nonrandom operations, splay trees perform...

    s discovered by Sleator and Tarjan
  • 1986 - Blum Blum Shub proposed by L. Blum, M. Blum, and M. Shub
  • 1987 - Fast multipole method
    Fast Multipole Method
    The fast multipole method is a mathematical technique that was developed to speed up the calculation of long-ranged forces in the n-body problem...

     developed by Leslie Greengard
    Leslie Greengard
    Leslie F. Greengard is an American mathematician, doctor of medicine and computer scientist. He is co-inventor of the fast multipole method in 1987, recognised as one of the top-ten algorithms of the 20th century....

     and Vladimir Rokhlin
    Vladimir Rokhlin (American scientist)
    Vladimir Rokhlin is mathematician and professor of computer science and mathematics at the Yale University. He is co-inventor of the fast multipole method in 1987, recognised as one of the top-ten algorithms of the 20th century.-Short biography:Vladimir Rokhlin was born on August 4, 1952 in...

  • 1988 - Special number field sieve
    Special number field sieve
    In number theory, a branch of mathematics, the special number field sieve is a special-purpose integer factorization algorithm. The general number field sieve was derived from it....

     developed by John Pollard
    John Pollard (mathematician)
    John M. Pollard is a British mathematician who has invented algorithms for the factorization of large numbers and for the calculation of discrete logarithms....


1990s

  • 1990 - General number field sieve
    General number field sieve
    In number theory, the general number field sieve is the most efficient classical algorithm known for factoring integers larger than 100 digits...

     developed from SNFS
    Special number field sieve
    In number theory, a branch of mathematics, the special number field sieve is a special-purpose integer factorization algorithm. The general number field sieve was derived from it....

     by Carl Pomerance
    Carl Pomerance
    Carl Bernard Pomerance is a well-known 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 has at least 7 distinct prime factors. He immediately joined the faculty at the...

    , Joe Buhler, Hendrik Lenstra
    Hendrik Lenstra
    Hendrik Willem Lenstra, Jr. is a Dutch mathematician.-Biography:Lenstra received his doctorate from the University of Amsterdam in 1977 and became a professor there in 1978...

    , and Leonard Adleman
    Leonard Adleman
    Leonard Max Adleman is an American theoretical computer scientist and professor of computer science and molecular biology at the University of Southern California. He is known for being a co-inventor of the RSA cryptosystem in 1977, and of DNA computing...

  • 1991 - Wait-free synchronization developed by Maurice Herlihy
    Maurice Herlihy
    Maurice Herlihy is a computer scientist active in the field of multiprocessor synchronization. Herlihy has contributed to the design of concurrent algorithms, and in particular to the exposition and quantification of the properties and uses of hardware synchronization operations...

  • 1992 - Deutsch–Jozsa algorithm proposed by D. Deutsch and Richard Jozsa
    Richard Jozsa
    Richard Jozsa is the holder of the Leigh Trapnell Chair in Quantum Physics at the University of Cambridge. His research area is quantum information science; a pioneer of this field, he is the co-author of the Deutsch-Jozsa quantum algorithm and one of the co-inventors of quantum teleportation...

  • 1992 - C4.5 algorithm
    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 referred to as a statistical classifier.-Algorithm:C4.5...

    , a descendent of ID3
    ID3 algorithm
    In decision tree learning, ID3 is an algorithm used to generate a decision tree invented by Ross Quinlan. ID3 is the precursor to the C4.5 algorithm.-Algorithm:The ID3 algorithm can be summarized as follows:...

     decision tree algorithm, was developed by Ross Quinlan
    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...

  • 1993 - Apriori algorithm
    Apriori algorithm
    In computer science and data mining, Apriori is a classic algorithm for learning association rules. Apriori is designed to operate on databases containing transactions...

     developed by Rakesh Agrawal and Ramakrishnan Srikant
  • 1994 - Shor's algorithm
    Shor's algorithm
    Shor's algorithm, named after mathematician Peter Shor, is a quantum algorithm for integer factorization formulated in 1994...

     developed by Peter Shor
    Peter Shor
    Peter Williston Shor is an American professor of applied mathematics at MIT, most famous for his work on quantum computation, in particular for devising Shor's algorithm, a quantum algorithm for factoring exponentially faster than the best currently-known algorithm running on a classical...

  • 1994 - Burrows–Wheeler transform developed by Michael Burrows
    Michael Burrows
    Michael Burrows is widely known as the creator of the Burrows–Wheeler transform. He also was, with Louis Monier, one of the two main creators of AltaVista. He did his first degree in Electronic Engineering with Computer Science at University College London...

     and David Wheeler
  • 1994 - Bootstrap aggregating
    Bootstrap aggregating
    Bootstrap aggregating is a machine learning ensemble meta-algorithm to improve machine learning of statistical classification and regression models in terms of stability and classification accuracy. It also reduces variance and helps to avoid overfitting. Although it is usually applied to decision...

     (bagging) developed by Leo Breiman
    Leo Breiman
    Leo Breiman 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 Science....

  • 1995 - AdaBoost
    AdaBoost
    AdaBoost, short for Adaptive Boosting, is a machine learning algorithm, formulated by Yoav Freund and Robert Schapire. It is a meta-algorithm, and can be used in conjunction with many other learning algorithms to improve their performance. AdaBoost is adaptive in the sense that subsequent...

     algorithm, the first practical boosting algorithm, was introduced by Yoav Freund
    Yoav Freund
    Yoav Freund is a researcher and professor at the University of California, San Diego who mainly works on machine learning, probability theory and related fields and applications.From his homepage:...

     and Robert Schapire
    Robert Schapire
    Robert Elias Schapire is a professor and researcher in the computer science department at Princeton University. His primary specialty is theoretical and applied machine learning....

  • 1995 - soft-margin support vector machine
    Support vector machine
    A support vector machine is a concept in statistics and computer science for a set of related supervised learning methods that analyze data and recognize patterns, used for classification and regression analysis...

     algorithm was published by Vladimir Vapnik
    Vladimir Vapnik
    Vladimir Naumovich Vapnik is one of the main developers of Vapnik–Chervonenkis theory. He was born in the Soviet Union. He received his master's degree in mathematics at the Uzbek State University, Samarkand, Uzbek SSR in 1958 and Ph.D in statistics at the Institute of Control Sciences, Moscow in...

     and Corinna Cortes
    Corinna Cortes
    Corinna Cortes is an American computer scientist who is known for her contributions to the field of machine learning. She is currently the Head of Google Research, New York. Cortes is a recipient of the Paris Kanellakis Theory and Practice Award for her work on theoretical foundations of support...

    . 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
    Ukkonen's algorithm
    In 1995, Esko Ukkonen proposed a linear-time, online algorithm for constructing suffix trees that has come to be known as Ukkonen's algorithm.The algorithm begins with an implicit suffix tree containing the first character of the string. Then it steps through the string adding successive characters...

     for construction of suffix trees
  • 1996 - Bruun's algorithm
    Bruun's FFT algorithm
    Bruun's algorithm is a fast Fourier transform algorithm based on an unusual recursive polynomial-factorization approach, proposed for powers of two by G. Bruun in 1978 and generalized to arbitrary even composite sizes by H. Murakami in 1996...

     generalized to arbitrary even composite sizes by H. Murakami
  • 1996 - Grover's algorithm
    Grover's algorithm
    Grover's algorithm is a quantum algorithm for searching an unsorted database with N entries in O time and using O storage space . It was invented by Lov Grover in 1996....

     developed by Lov K. Grover
  • 1996 - RIPEMD-160 developed by Hans Dobbertin
    Hans Dobbertin
    Hans Dobbertin, 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 hash function...

    , Antoon Bosselaers, and Bart Preneel
    Bart Preneel
    Bart Preneel is a Belgian cryptographer and cryptanalyst. He is a professor at Katholieke Universiteit Leuven, in the COSIC group, president of the International Association for Cryptologic Research, and project manager of ECRYPT....

  • 1998 - PageRank
    PageRank
    PageRank is a link analysis algorithm, named after Larry Page and used by the Google Internet search engine, that assigns a numerical weighting to each element of a hyperlinked set of documents, such as the World Wide Web, with the purpose of "measuring" its relative importance within the set...

     algorithm was published by Larry Page
    Larry Page
    Lawrence "Larry" Page is an American computer scientist and internet entrepreneur who, with Sergey Brin, is best known as the co-founder of Google. As of April 4, 2011, he is also the chief executive of Google, as announced on January 20, 2011...

  • 1998 - rsync algorithm developed by Andrew Tridgell
    Andrew Tridgell
    Andrew "Tridge" Tridgell is an Australian computer programmer best known as the author of and contributor to the Samba file server, and co-inventor of the rsync algorithm....

  • 1999 - gradient boosting
    Gradient boosting
    Gradient boosting is a machine learning technique for regression problems, which produces a prediction model in the form of an ensemble of weak prediction models, typically decision trees. It builds the model in a stage-wise fashion like other boosting methods do, and it generalizes them by...

     algorithm developed by Jerome H. Friedman
  • 1999 - Yarrow algorithm
    Yarrow algorithm
    The Yarrow algorithm is a cryptographically secure pseudorandom number generator. The name is taken from the yarrow plant, the stalks of which are dried and used as a randomising agent in I Ching divination....

     designed by Bruce Schneier
    Bruce Schneier
    Bruce Schneier is an American cryptographer, computer security specialist, and writer. He is the author of several books on general security topics, computer security and cryptography, and is the founder and chief technology officer of BT Managed Security Solutions, formerly Counterpane Internet...

    , John Kelsey
    John Kelsey (cryptanalyst)
    John Kelsey is a cryptographer currently working at NIST. His research interests include cryptanalysis and design of symmetric cryptography primitives , analysis and design of cryptographic protocols, cryptographic random number generation, electronic voting, side-channel attacks on cryptography...

    , and Niels Ferguson
    Niels Ferguson
    Niels T. Ferguson 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 protocols, and writing papers and books...


2000s

  • 2001 - Lempel–Ziv–Markov chain algorithm for compression developed by Igor Pavlov
    Igor Pavlov (programmer)
    Igor Pavlov is a Russian freelance programmer and is the creator and the maintainer of the file archiver 7-Zip and its toolset. He is also the creator of the 7z archive format...

  • 2001 - Viola–Jones algorithm for real-time face detection was developed by Paul Viola and Michael Jones.
  • 2002 - AKS primality test
    AKS primality test
    The AKS primality test is a deterministic primality-proving algorithm created and published by three Indian Institute of Technology Kanpur computer scientists, Manindra Agrawal, Neeraj Kayal, and Nitin Saxena, on August 6, 2002, in a paper titled "PRIMES is in P"...

     developed by Manindra Agrawal
    Manindra Agrawal
    Manindra Agrawal is a professor at the department of computer science and engineering and the Dean of Resource, Planning and Generation at the Indian Institute of Technology, Kanpur. He is also the recipient of the first Infosys Prize for Mathematics.-Early life:Manindra Agrawal obtained a...

    , Neeraj Kayal
    Neeraj Kayal
    Neeraj Kayal is an Indian computer scientist. Kayal was born and raised in Guwahati, India.Kayal graduated with a B.Tech from the Computer Science Department of the Indian Institute of Technology, Kanpur , India in 2002...

     and Nitin Saxena
    Nitin Saxena
    Nitin Saxena is an Indian scientist, active in the fields of mathematics and theoretical computer science. His research focuses on topics in computational complexity, especially algebraic approaches....

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK