Skip to main content

complexity classes

complexity classes A way of grouping algorithms, computable functions, or specifications according to their computational complexity. Computable functions that have the same complexity according to some measure are placed in the same complexity class; functions in the same class are equally difficult to compute with respect to the measure.

The classification is most thoroughly done for formal languages that can be recognized by Turing machines. If L is a formal language that can be recognized by a deterministic Turing machine program M, and the time complexity (see complexity measure) for M is a function TM(n) of the length n of the input string, then L is classified according to the nature of TM(n). If TM(n) is bounded (e.g. by a polynomial or exponential function) then there exists a bounding function S(n) such that for all n, TM(n) ← S(n)

For a particular function S(n) there is consequently a class of languages for which the above bound on time holds. This class is denoted by DTIME(S(n))

Thus DTIME(S(n)) is the class of languages recognizable within time S(n).

There is a similar definition of a class of languages DSPACE(S(n))

in terms of the space complexity (see complexity measure).

There are various known relations between complexity classes. For example, if for two bounding functions S1 and S2

then there is a language in DSPACE(S2(n)) that is not in DSPACE(S1(n)). Note that this applies if S1 is polynomial and S2 is exponential. There are similar results for time complexity classes.

Complexity classes can also be defined for nondeterministic Turing machine programs. Thus a language L is in NSPACE(S(n))

if there is some nondeterministic Turing machine program that recognizes L and such that on an input string of length n none of the possible computations uses more than S(n) tape squares. Time complexity classes, NTIME, can be similarly defined. It is known for example that NSPACE(S(n)) ⊆ DSPACE(S(n)2)

Cite this article
Pick a style below, and copy the text for your bibliography.

  • MLA
  • Chicago
  • APA

"complexity classes." A Dictionary of Computing. . 19 Mar. 2019 <>.

"complexity classes." A Dictionary of Computing. . (March 19, 2019).

"complexity classes." A Dictionary of Computing. . Retrieved March 19, 2019 from

Learn more about citation styles

Citation styles gives you the ability to cite reference entries and articles according to common styles from the Modern Language Association (MLA), The Chicago Manual of Style, and the American Psychological Association (APA).

Within the “Cite this article” tool, pick a style to see how all available information looks when formatted according to that style. Then, copy and paste the text into your bibliography or works cited list.

Because each style has its own formatting nuances that evolve over time and not all information is available for every reference entry or article, cannot guarantee each citation it generates. Therefore, it’s best to use citations as a starting point before checking the style against your school or publication’s requirements and the most-recent information available at these sites:

Modern Language Association

The Chicago Manual of Style

American Psychological Association

  • Most online reference entries and articles do not have page numbers. Therefore, that information is unavailable for most content. However, the date of retrieval is often important. Refer to each style’s convention regarding the best way to format page numbers and retrieval dates.
  • In addition to the MLA, Chicago, and APA styles, your school, university, publication, or institution may have its own requirements for citations. Therefore, be sure to refer to those guidelines when editing your bibliography or works cited list.