The term “computational complexity” has two usages which must be distinguished. On the one hand, it refers to an algorithm for solving instances of a problem: broadly stated, the computational complexity of an algorithm is a measure of how many steps the algorithm will require in the worst case for an instance or input of a given size. The number of steps is measured as a function of that size.
The term's second, more important use is in reference to a problem itself. The theory of computational complexity involves classifying problems according to their inherent tractability or intractability — that is, whether they are “easy” or “hard” to solve. This classification scheme includes the well-known classes P and NP; the terms “NP-complete” and “NP-hard” are related to the class NP.
ALGORITHMS AND COMPLEXITY
To understand what is meant by the complexity of an algorithm, we must define algorithms, problems, and problem instances. Moreover, we must understand how one measures the size of a...
- Bovet, D. P. and Crescenzi, P. (1994). Introduction to the Theory of Complexity. Prentice-Hall, Englewood Cliffs, New Jersey.Google Scholar
- Cook, S. A. (1971). “The complexity of theorem-proving procedures,” Proc. 3rd Annual ACM Symp. Theory of Computing, 151–158. Google Scholar
- Garey, M. R. and Johnson, D. S. (1979). Computers and Intractability: a Guide to the Theory of NP-Completeness. W.H. Freeman, New York.Google Scholar
- Karp, R. M. (1975). “On the computational complexity of combinatorial problems,” Networks 5, 45–68.Google Scholar
- Lewis, H. R. and Papadimitriou, C. H. (1997). Elements of the Theory of Computation, 2nd ed. Prentice-Hall, Englewood Cliffs, New Jersey.Google Scholar
- Papadimitriou, C. H. (1985). “Computational complexity,” in Lawler, E. L., J. K. Lenstra, A. H.G. Rinnooy Kan, and D. B. Shmoys, eds., The Traveling Salesman Problem: A Guided Tour of Combinatorial Optimization. Wiley, Chichester, UK.Google Scholar
- Papadimitriou, C. H. (1993). Computational Complexity. Addison-Wesley, Redwood City, California.Google Scholar
- Papadimitriou, C. H. and Steiglitz, K. (1982). Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, Englewood Cliffs, New Jersey.Google Scholar
- Shmoys, D. B. and Tardos, E. (1989). “Computational complexity of combinatorial problems,” in Lovász, L., R. L. Graham, and M. Groetschel, eds., Handbook of Combinatorics. North-Holland, Amsterdam.Google Scholar
- Sipser, M. (1997). Introduction to the Theory of Computation. PWS-Kent, Belmont, California.Google Scholar
- Stockmeyer, L. J. (1990). “Complexity theory,” in Coffman, Jr., E. G., J. K. Lenstra, and A. H.G. Rinnooy Kan, eds., Handbooks in Operations Research and Management Science; Volume 3: Computation, Chapter 8. North Holland, Amsterdam.Google Scholar