Un algoritmo si dice efficiente se la sua complessità è di ordine polinomiale nella dimensione dell’output, ovvero se è di complessità per una qualche costante .
Un algoritmo è inefficiente se la sua complessità è di ordine superpolinomiale:
- esponenziale -→
- super-esponenziale -→ cresce più velocemente di un esponenziale
- per esempio o anche
- sub-esponenziale -→ cresce più lentamente di un esponenziale:
- per esempio:
Problemi di cui si conoscono algoritmi subesponenziali e non polinomiali sono pochi e proprio per questo molto studiati.