Teoria złożoności obliczeniowej jest gałęzią teorii obliczeń w informatyce teoretycznej i matematyce, która koncentruje się na klasyfikowaniu problemów obliczeniowych zgodnie z ich wrodzoną trudnością. Szczególnie powszechna w programowaniu jest * amortyzowana analiza * czasu lub przestrzeni