Computer Science Hall of Fame. Curator: W.F. Klostermeyer, established 1997.
  • 1. The PCP Theorem [Arora, Babai, Sudan, et al., 1985-1992]

  • Shows that "proofs" of membership for languages in NP can be decided with high probability by examining only a constant number of bits of the specially constructed "proof." Has profound implications on hardness of approximation: problems such as clique and graph coloring have no good approximation algorithms (unles P=NP) and the MAX-SNP hard problems (e.g. Vertex Cover) do not have approximation schemes. A "tour de force of pure mathematics" and is related to the famous proof that IP=PSPACE (see for example Interactive Proofs) For more information visit PCPs and Approximation
  • 2. Cook's Theorem [NP-completeness of SAT, 1971. Independently discovered by Levin]

  • Established the existance of NP-complete sets. Karp soon showed that a host of problems were equivalent in difficulty to SAT, and thus believed intractable. Some pertinent definitions can be found in Comp.theory FAQ and some more up to date information on NP-completeness and approximation (in the style of Garey and Johnson) can be found at Compendium of NP-optimization Problems
  • 3. Halting Problem's Undecidability [Turing, 1939]

  • Showed there are problems that cannot be solved by any computer in finite time. See The Halting Problem or Halting Problem or some more information: More on TM's
  • 4. QuickSort and Average Case Analysis of QuickSort [Hoare et al.]

  • A simple elegant algorithm that is very practical. The average case analysis provides great insights into the algorithm and shows that worst-case analysis is not always the best tool. A description of the algorithm and its analysis can be found here: QuickSort
  • 5. Fast Fourier Transform Algorithm

  • O(n log n) method for Fourier transforms. Of great application in manipulation of polynomials and integer arithmetic. A description of the algorithm can be found here FFT. A beautiful use of recursion.
  • 6. Sub-cubic Matrix Multiplcation Algorithms [Strassen, Coppersmith/Winograd, et al.]

  • Strassen's original O(n^(2.81)) algorithm was faster than the obvious O(n^3) method. Current fastest in O(n^(2.37)).
  • 7. O(log n) depth sorting network [Ajtai, Komlos, & Szemeredi, 1983]

  • Fast parallel sorting. A detailed overview of parallel sorting can be found here Parallel Sorting
  • 8. Polynomial Time Linear Programming [Khachiyan, Karmarkar, 1979]

  • Visit the link Linear Programming Page
    The well-known SIMPLEX method, though practical most of the time, requires exponential time in the worst-case. These methods showed that polynomial time worst case algorithms exist, which have proved to be of great application in the design approximation algorithms. Namely:
  • 9. Semi-definite programming for approximation algorithms [Goemans and Williamson, 1994]

  • A breakthrough. Uses randomized rounding of linear programs and some deep mathematics to develop much better approximation algorithms for many NP-complete problems (e.g. MAX-CUT). You can see one of these algorithms in action here M.X. Goeman's Page Or you can visit the Semi-definite programming page Or visit David Williamson (several links here). There is a survey paper on Semi-definite programming (in general, not specifically with regard to approximation algorithms in SIAM Review, March 1996).
  • 10. Polynomial Time Algorithm for Factorization Over a Finite Field [Berlekamp]

  • Knuth called this algorithm "amazing."
  • 11a. Polynomial Time Algorithm for Determining if an integer is prime [Agarwal et al. 2002]

  • A stunning, elegant, simple (relatively speaking) algorithm. Such an algorithm had been sought, literally, for thousands of years. Though not yet as fast in practice as the randomized tests (see 11b below), as the algorithm runs is O(log^12 n) time for an integer n (though O(log^6 n) time if their conjecture proves true), a major theoretical breakthrough.
  • 11b. Randomized Primality Testing [Miller, Rabin]

  • A very fast, almost always correct, method to solve what is believed to be a very difficult (and fundamental) problem. Some basic information can be found at Miller-Rabin while the Prime Page contains useful information about primes and testing primes.
    Honorable Mention
  • a1. Competitive Analysis and Amortization Arguments(including Union-Find, Fibonacci Heaps, Paging)[Sleator, Tarjan, et al.]

  • A new method of algorithm (and data structure) analysis (based on amortization arguments). The resulting data structures (e.g. Fibonacci heaps) lead to the best known algorithms for many problems, such as Minimum Spanning Tree.
  • a2. Competitiveness of Work-Function Algorithm for k-Server Problem [Koutsoupias and Papadimitriou, 1993]

  • The tour-de-force of competitive analysis, showing the work function algorithm (folklore) is 2k-1 competitive for the k-Server problem (a generalization of the paging problem). Still conjectured to be k-competitive, however (known to be for k=2).
  • b. Relational Databases [Codd]
  • c. Edmonds Matching Algorithm [Edmonds, 1966]

  • Non-trivial algorithm for finding a maximum matching in a graph. Led to much work on graph algorithms and includes early notions of the class "P." Useful in solving other problems.
  • d. Average-Case NP-completeness [Levin, 1984].

  • Showed that some NP-complete problems are difficult in "most" instances while others are difficult only in rare instances, as described on the Average Case Complexity Page
  • e. RSA Encryption/Decryption [Rivest/Shamir/Adelman, 1978].
  • f. Other Graph Algorithms of Note:

  • -- Graph Minors [Robertson & Seymour, 1980-1990] Over a long series of papers, they show that one can test in polynomial time if H is a minor of G (H is a minor of G if H can be obtained from some subgraph of G by a series of vertex contractions).
    -- Four Color Theorem [Appel & Haken, 1976]. A corollary to the four color theorem is that any planar graph can be colored with four colors in polynomial time. See Four Color Theorem for details.
    -- Graph Isomorphism Testing. Determining if G is isomorphic to H is generally thought to be difficult, though it is not NP-complete unless the polynomial time hierarchy collapses (this result is due to Schoning and his Low Hierarchy, 1982-1988. Also follows from fact that Graph Non-isomorphism has constant-round interactive proofs). The best known algorithm for graph isomorphism requires superpolynomial time and is due to [Luks, 1982] and is deeply rooted in group theory, as is explained at Graph Isomorphism and Group Theory. Luks [JCSS, 1982] does give a polynomial time algorithm to solve the problem if vertex degrees are bounded.
    -- Maximum Flow. Original polynomial time algorithm due to Ford and Fulkerson [1962]. Current best algorithm is due to Goldberg and Tarjan: O(VE log(V^2/E) [1986].
    -- Arora's Polynomial Time Approximation Scheme for Euclidean TSP (1997-1998).
    -- Hopcroft and Tarjan's linear time planarity testing algorithm (1970)

    Honorable Mention (Early Contributions)
  • i. Euclid's GCD algorithm

  • Fast, elegant. Analysis is interesting, involving the Fibonacci numbers.
  • ii. Gaussian Elimination for Solving Linear Equations

  • Ubiquitous.
  • iii. Hamming's and Shannon's early work on codes and information theory

  • Cornerstone of modern digital communications. 
    Some Additional Links with Background Information:
    Comp.theory FAQ
    Leonid Levin's Fundamentals of Computing
    Stony Brook Algorithm Repository
    Lance Fortnow's Top Ten Complexity Theory Theorems of 1986-1996
    CMU Great CS Ideas Course
    Alternate CMU Great CS Ideas Course