Computationele complexiteitstheorie is een onderdeel van computerwetenschap. Het kijkt naar algoritmen, en probeert te zeggen hoeveel stappen of hoeveel geheugen een bepaald algoritme nodig heeft om een computer te laten werken. Heel vaak gebruiken algoritmen die minder stappen gebruiken meer geheugen (of omgekeerd: als er minder geheugen beschikbaar is, kost het meer stappen om het te doen). Veel interessante algoritmen nemen een aantal stappen dat afhankelijk is van de grootte van het probleem.