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.