Timeline of algorithms
From Wikipedia, the free encyclopedia
The following timeline outlines the development of algorithms (mainly "mathematical recipes") since their inception.
Contents |
[edit] Before 1940
- Before - Writing about "recipes" (on cooking, rituals, agriculture and other themes)
- C. 1600 BC - Babylonians develop earliest known algorithms for factorization and finding square roots
- C. 300 BC - Euclid's algorithm
- C. 200 BC - the Sieve of Eratosthenes
- 263 - Gaussian elimination described by Liu Hui
- Between 813 and 833 Al-Khawarizmi described an algorithm for solving Linear equations and Quadratic equations; the word algorithm comes from his name
- 1614 - John Napier develops method for performing calculations using logarithms
- 1671 - Newton-Raphson method developed by Isaac Newton
- 1690 - Newton-Raphson method independently developed by Joseph Raphson
- 1805 - FFT-like algorithm known by Carl Friedrich Gauss
- 1926 - Boruvka's algorithm
- 1934 - Delaunay triangulation developed by Boris Delaunay
- 1936 - Turing machine, an abstract machine developed by Alan Turing, with others developed the modern notion of algorithm.
[edit] 1940s
- 1945 - Merge sort developed by John von Neumann
- 1947 - Simplex algorithm developed by George Dantzig
[edit] 1950s
- 1952 - Huffman coding developed by David A. Huffman
- 1954 - Radix sort computer algorithm developed by Harold H. Seward
- 1956 - Kruskal's algorithm developed by Joseph Kruskal
- 1957 - Prim's algorithm developed by Robert Prim
- 1957 - Bellman-Ford algorithm developed by R. Bellman and L. R. Ford
- 1959 - Dijkstra's algorithm developed by Edsger Dijkstra
- 1959 - Shell sort developed by D. L. Shell
- 1959 - De Casteljau's algorithm developed by Paul de Casteljau
[edit] 1960s
- 1962 - Quicksort developed by C. A. R. Hoare
- 1962 - Ford-Fulkerson algorithm developed by L. R. Ford and D. R. Fulkerson
- 1962 - Bresenham's line algorithm developed by Jack E. Bresenham
- 1964 - Heapsort developed by J. W. J. Williams
- 1965 - Cooley-Tukey algorithm rediscovered by James Cooley and John Tukey
- 1965 - Levenshtein distance developed by Vladimir Levenshtein
- 1965 - Cocke-Younger-Kasami (CYK) algorithm independently developed by T. Kasami
- 1966 - Dantzig algorithm for shortest path in a graph with negative edges
- 1967 - Viterbi algorithm proposed by Andrew Viterbi
- 1967 - Cocke-Younger-Kasami (CYK) algorithm independently developed by D. H. Younger
- 1968 - A* graph search algorithm described by Peter Hart, Nils Nilsson, and Bertram Raphael.
[edit] 1970s
- 1970 - Knuth-Bendix completion algorithm developed by Donald Knuth and P. B. Bendix
- 1972 - Graham scan developed by Ronald Graham
- 1973 - RSA encryption algorithm discovered by Clifford Cocks
- 1973 - Jarvis march algorithm developed by R. A. Jarvis
- 1974 - Pollard's p-1 algorithm developed by John Pollard
- 1975 - Genetic algorithms popularized by John Holland
- 1975 - Pollard's rho algorithm developed by John Pollard
- 1975 - Aho-Corasick algorithm developed by Alfred V. Aho and Margaret J. Corasick
- 1976 - Salamin-Brent algorithm independently discovered by Eugene Salamin and Richard Brent
- 1976 - Knuth-Morris-Pratt algorithm developed by Donald Knuth and Vaughan Pratt and independently by J. H. Morris
- 1977 - Boyer-Moore string search algorithm for searching the occurrence of a string into another string.
- 1977 - RSA encryption algorithm rediscovered by Ron Rivest, Adi Shamir, and Len Adleman
- 1977 - LZ77 algorithm developed by Abraham Lempel and Jacob Ziv
- 1978 - LZ78 algorithm developed from LZ77 by Abraham Lempel and Jacob Ziv
- 1978 - Bruun's algorithm proposed for powers of two by G. Bruun
- 1979 - Khachiyan's ellipsoid method developed by Leonid Khachiyan
[edit] 1980s
- 1981 - Quadratic sieve developed by Carl Pomerance
- 1983 - Simulated annealing developed by S. Kirkpatrick, C. D. Gelatt and M. P. Vecchi
- 1984 - LZW algorithm developed from LZ78 by Terry Welch
- 1984 - Karmarkar's interior-point algorithm developed by Narendra Karmarkar
- 1985 - Simulated annealing independently developed by V. Cerny
- 1986 - Blum Blum Shub proposed by L. Blum, M. Blum, and M. Shub
- 1988 - Special number field sieve developed by John Pollard
[edit] 1990s
- 1990 - General number field sieve developed from SNFS by Carl Pomerance, Joe Buhler, Hendrik Lenstra, and Leonard Adleman
- 1991 - Wait-free synchronization developed by Maurice Herlihy
- 1992 - Deutsch-Jozsa algorithm proposed by D. Deutsch and R. Jozsa
- 1994 - Shor's algorithm developed by Peter Shor
- 1994 - Burrows-Wheeler transform developed by Michael Burrows and David Wheeler
- 1996 - Bruun's algorithm generalized to arbitrary even composite sizes by H. Murakami
- 1996 - Grover's algorithm developed by Lov K. Grover
- 1996 - RIPEMD-160 developed by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel
- 1998 - rsync algorithm developed by Andrew Tridgell
- 1999 - Yarrow algorithm designed by Bruce Schneier, John Kelsey, and Niels Ferguson
[edit] 2000s
- 2001 - LZMA compression algorithm
- 2002 - AKS primality test developed by Manindra Agrawal, Neeraj Kayal and Nitin Saxena