Key Time Complexity Classes to Know for Computational Complexity Theory

Time complexity classes categorize problems based on how efficiently they can be solved or verified. Understanding these classes, like P and NP, helps us grasp the limits of computation and the challenges in determining problem solvability within computational complexity theory.

  1. P (Polynomial Time)

    • Problems that can be solved by a deterministic Turing machine in polynomial time.
    • Examples include sorting algorithms and finding the shortest path in a graph.
    • If a problem is in P, it is considered efficiently solvable.
  2. NP (Nondeterministic Polynomial Time)

    • Problems for which a solution can be verified in polynomial time by a deterministic Turing machine.
    • Includes famous problems like the Traveling Salesman Problem and the Knapsack Problem.
    • It is unknown whether P = NP, which is one of the biggest open questions in computer science.
  3. EXPTIME (Exponential Time)

    • Problems that can be solved by a deterministic Turing machine in exponential time.
    • Examples include certain games and decision problems that require exhaustive search.
    • Generally considered intractable for large inputs due to their high time complexity.
  4. PSPACE (Polynomial Space)

    • Problems that can be solved using a polynomial amount of memory, regardless of time.
    • Includes problems like the Quantified Boolean Formula (QBF).
    • PSPACE contains both P and NP, and it is believed to be a strict superset of P.
  5. L (Logarithmic Space)

    • Problems that can be solved using logarithmic space on a deterministic Turing machine.
    • Examples include certain graph problems and string processing tasks.
    • It is a subset of P and is considered very efficient in terms of space usage.
  6. NL (Nondeterministic Logarithmic Space)

    • Problems that can be solved using logarithmic space on a nondeterministic Turing machine.
    • Includes problems like the directed connectivity problem.
    • NL is believed to be strictly smaller than P, but this is not yet proven.
  7. BPP (Bounded-error Probabilistic Polynomial Time)

    • Problems that can be solved by a probabilistic Turing machine in polynomial time with a bounded error probability.
    • Useful for algorithms that can tolerate some level of randomness, such as Monte Carlo methods.
    • BPP is believed to be contained within P, but this is not definitively proven.
  8. co-NP (Complement of NP)

    • Problems for which the complement of the solution can be verified in polynomial time.
    • Includes problems like determining whether a Boolean formula is unsatisfiable.
    • The relationship between NP and co-NP is still an open question in complexity theory.
  9. NC (Nick's Class)

    • Problems that can be solved in polylogarithmic time using a polynomial number of processors.
    • Focuses on parallel computation and efficient algorithms for large-scale problems.
    • NC is a subset of P and is significant for parallel computing applications.
  10. NEXPTIME (Nondeterministic Exponential Time)

    • Problems that can be solved by a nondeterministic Turing machine in exponential time.
    • Includes complex decision problems that are beyond the reach of polynomial time algorithms.
    • NEXPTIME is believed to be strictly larger than EXPTIME, but this is not yet proven.


© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.

© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.