“Algorithm” is an old word for a modern obsession: the idea that a procedure can be made explicit, repeated reliably, and judged by its cost. “Complexity” is the discipline that asks what that cost must be, even before we write the procedure down. Together, algorithms and complexity became the language we use to separate what is merely difficult from what is structurally intractable.
A short history is not a list of dates. It is the story of a few changes in how we ask questions. Across the last century, the field repeatedly tightened its standards: it learned to define computation, \to measure it, \to classify it, and to confront the limits that follow from those classifications. The turning points below mark those shifts.
Five turning points that reshaped the field
The table summarizes the five moments, then the sections unpack what changed and why it still matters.
| Turning point | What changed | What it made possible | A lasting open tension |
|—|—|—|—|
| Mechanizing computation | A formal definition of “procedure” | Decidability, computability, universality | What computation is when physics changes |
| Measuring cost | Time and space as mathematical resources | Asymptotic analysis, algorithm design as optimization | Models versus machines |
| NP-completeness and reductions | Hardness as a transferable property | A unified map of intractability | P versus NP and the nature of hardness |
| Randomness and interaction | Proof and computation became richer objects | Probabilistic algorithms, interactive proofs, PCP-style amplification | Why randomness helps and whether it is necessary |
| Modern frontier: structure, cryptography, and fine granularity | Hardness assumptions became engineering tools | Modern cryptography, approximation theory, parameterization, fine-grained complexity | Which assumptions reflect reality |
Mechanizing computation: from intuition \to a universal model
Before the twentieth century, algorithms existed as recipes: Euclid’s method for greatest common divisors, numerical schemes for roots, hand-computation tables for navigation. The conceptual leap was to turn “recipe” into a mathematical object. Once you can represent a procedure, you can ask whether there are problems no procedure can solve.
The emergence of universal models of computation did two things at once:
- It made computability precise: some tasks are impossible for any algorithm, not merely hard.
- It made universality meaningful: one machine model can simulate others, so limits are not artifacts of a particular device.
This was not a victory of abstraction over reality. It was a way to protect statements about possibility from changes in hardware. Once you accept a universal model, impossibility results become stable.
The lasting tension is that computation happens in a physical world. If the laws of physics allow new operations, then the boundary of what is computable could shift. That question sits behind quantum computing, analog models, and the study of computation under real-world constraints.
Measuring cost: time and space became first-class resources
A definition of computation is not yet a theory of efficiency. The next shift was to treat cost as something you can reason about without running the program, by counting resource usage as a function of input size.
This is where asymptotic thinking became the field’s grammar:
- Upper bounds became statements about what can be done within a budget.
- Lower bounds became statements about what must be spent, no matter the cleverness.
- Trade-offs became visible: you can often save time by spending space, or save time by using randomness, or save space by accepting approximation.
Algorithm design matured when cost was not just measured after the fact but built into the design goal. Divide-and-conquer, dynamic programming, greedy methods, and graph algorithms became more than clever techniques; they became patterns for controlling resource growth.
The lasting tension is that models are not machines. A RAM model that counts operations equally can mislead you when memory traffic dominates. Yet a model that is too close \to a particular machine can become obsolete. The field’s progress depends on picking abstractions that are stable and still predictive.
NP-completeness: intractability became a connected landscape
The turning point that most non-specialists recognize is NP-completeness. The field learned to show that many seemingly different problems share a core difficulty. The mechanism is reduction: a way to transform instances of one problem into instances of another while preserving answers.
The conceptual shift was that hardness could be moved.
- Instead of proving each problem hard from scratch, you prove a small set hard, then reduce.
- Instead of treating hard problems as isolated curiosities, you get a web of equivalences.
- Instead of asking “is this problem hard,” you ask “where does it sit in the map.”
This map changed practice as well. When a problem is NP-complete, you stop expecting a universally fast exact algorithm. You start looking for structure, approximation, heuristics, or parameters that are small in your domain.
The open tension is P versus NP, but it is deeper than a yes-or-no question. It asks what “hardness” really is. Is NP-hardness a symptom of a simple combinatorial explosion, or is it a sign of a fundamental barrier to compression of search?
Randomness and interaction: computation learned new proof techniques
Another turning point came when the field stopped treating computation as purely deterministic and proofs as purely static. Randomness entered as a resource, and interaction entered as a way to certify claims.
On the algorithm side, randomized methods showed that probability can trade for time:
- Random sampling can break symmetry and avoid worst-case patterns.
- Hashing can turn expensive comparisons into cheap bucket operations.
- Random walks and Markov chain ideas can approximate quantities that are hard to compute exactly.
On the complexity side, interaction expanded what “proof” means. In an interactive proof, a verifier with limited resources can be convinced of a statement by interacting with a powerful prover, even when the verifier cannot do the computation alone. Amplification and self-correction ideas showed that you can make correctness robust by repeated structured checks.
The field also learned that proof systems can be transformed: local checkability, gap amplification, and the study of approximation hardness tied together algorithms, complexity, and the limits of efficient verification.
The open tension is whether randomness is essential. If every probabilistic polynomial-time algorithm could be derandomized efficiently, then randomness would be a convenience, not a fundamental resource. The search for pseudorandomness and derandomization is part of this tension.
Modern frontier: structure, cryptography, approximation, and fine-grained questions
The most recent turning point is less a single theorem and more a change in posture. Complexity assumptions became usable engineering objects, especially in cryptography. Instead of treating hardness as purely negative, the field began to build on it.
Modern cryptography takes the stance: if some problems are hard in the right way, then we can build systems with security properties that reduce to that hardness. The result is a rich interplay between algorithms and complexity:
- Designing cryptographic primitives forces precise average-case and adversarial formulations.
- Studying approximation and hardness of approximation clarifies which relaxations are meaningful.
- Parameterized complexity asks: which “small” structural parameters make hard problems tractable.
- Fine-grained complexity asks: even within polynomial time, what exponents are unavoidable under plausible assumptions.
This shift brought the field closer to practice without surrendering rigor. Hardness assumptions became explicit contracts: if the assumption holds, then the construction achieves its guarantee.
The open tension is choosing assumptions that reflect reality. Are the assumptions true for the kinds of instances adversaries can generate? Are they stable under new hardware and new algorithms? This is where complexity theory meets empirical cryptanalysis, solver advances, and the continual rebuilding of security margins.
What the field looks like now
Today, algorithms and complexity are not separated disciplines. They form a feedback loop.
- Complexity classifications tell algorithm designers where exact solutions are unlikely and where approximation or structure should be sought.
- New algorithms often force new complexity questions, because they exploit structure that old classifications ignored.
- Practical breakthroughs, such as fast SAT solving on industrial instances, push the theory to explain which structures make the instances easy.
The field also learned to be pluralistic about models. A single “right” model is rare. Instead, you state which resource matters: time, space, communication, memory traffic, randomness, or parallel depth.
The enduring questions that keep reappearing
Some questions do not fade because they encode the field’s deepest uncertainties:
- Whether P equals NP, and what the right intermediate notions of hardness are.
- Whether randomness can be removed without losing efficiency in broad classes of algorithms.
- Whether strong lower bounds for general models like circuits are within reach, and what new ideas would be needed.
- How to align theoretical models with the dominant costs of real computation: data movement, distribution, and verification.
A short history ends with a long horizon. The turning points above show a pattern: the field advances when it learns to state its claims in a way that survives translation. Computation changes its surface constantly, but the question underneath stays stable: what can be done, at what cost, and why must that cost sometimes be paid?
References for deeper study
- Texts on computability and the formalization of computation.
- Texts on algorithm design and asymptotic analysis as a methodology.
- Texts on computational complexity, reductions, and completeness.
- Surveys on randomness, pseudorandomness, interactive proofs, and approximation hardness.
- Overviews of parameterized and fine-grained complexity as modern refinements of “tractable.”