IT lexicon › Programming › Complexity theory

Complexity theory

Programming På svenska → Updated: 2026-10-02

The branch of computer science that sorts problems by the time and memory they demand — not by how hard they feel.

The field was formalised by Juris Hartmanis and Richard Stearns in 1965, who named it and collected the 1993 Turing Award for it. Problems fall into classes: P is what can be solved in polynomial time, NP what can be verified in polynomial time given a candidate answer, PSPACE what fits in polynomial memory regardless of time. The classification describes the problem, not one implementation — which is what separates it from Big-O.

Its practical value is knowing when to stop looking. If a problem is NP-complete, hunting for an exact efficient algorithm is wasted effort, and the move is to heuristics, approximations, or a narrower version of the problem. Cryptography lives off the opposite bet: public-key cryptography rests entirely on nobody having found a fast way to factor large numbers.

← Back to the lexicon