Skip to main content

Complexity Classes

  • Chapter
  • First Online:
Limits of Computation

Part of the book series: Undergraduate Topics in Computer Science ((UTICS))

  • 2696 Accesses

Abstract

In this chapter the notion of runtime measure for programs is lifted to problems. We classify problems according to the time it takes to decide them. The notion of time bounds is introduced which abstracts away from concrete input expressing runtime simply in terms of the size of the input. The focus will be mainly on linear, polynomial and exponential time. The Big-O and little-o notation are introduced to describe the order of growth of a function. independent from constant factors. This is in line with asymptotic worst-case complexity which we will be using throughout.

How do we classify problems according to the time it takes to solve them? What are the relationships between those classes and how do we prove them?

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    This is of course sufficient since we are interested in runtime of decision procedures.

  2. 2.

    It seems humans can much better grasp large amounts of time than large natural numbers. Maybe this is due to evolution?

  3. 3.

    In [1] the classes are called PTIME, LINTIME, NPTIME (there is no EXPTIME), respectively.

  4. 4.

    This notation as well as “little-o” discussed later, is by Edmund Georg Hermann Landau (14 February 1877–19 February 1938), a German mathematician who worked mainly in the field of analytic number theory. “\(\mathscr {O}\)” stands for order.

  5. 5.

    As the reader may already have guessed there is also a notation for lower bounds \(\Omega \) (called “Big-Omega”), dual to \(\mathop {}\mathopen {}\mathscr {O}\mathopen {}\left( \_\right) \), but we don’t need it for our considerations.

References

  1. Jones, N.D.: Computability and Complexity: From a Programming Perspective. MIT Press, Cambridge (1997) (Also available online at http://www.diku.dk/neil/Comp2book.html.)

  2. Ong, C.-H.L.: Computational Complexity. Oxford University Programming Laboratory (1999) Available via DIALOG http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.27.3433&rep=rep1&type=pdf. Accessed 10 June 2015

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bernhard Reus .

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this chapter

Cite this chapter

Reus, B. (2016). Complexity Classes. In: Limits of Computation. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-27889-6_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-27889-6_13

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-27887-2

  • Online ISBN: 978-3-319-27889-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics