La teoria della complessità computazionale è una branca della teoria del calcolo nell'informatica teorica e nella matematica che si concentra sulla classificazione dei problemi computazionali in base alla loro difficoltà intrinseca. Particolarmente comune nella programmazione è * l'analisi ammortizzata * per il tempo o lo spazio