productivitate - alege un puzzle de rezolvat

Alte formulări: eficiența algoritmică, analiza complexității algoritmilor. În informatică, eficiență este un termen utilizat pentru a descrie câteva atribute dezirabile ale unui algoritm sau al unui alt construct, în afara unui concept curat, a funcționalității, etc. Eficiența în general e conținută în două proprietăți: viteză (timpul cât îi ia unei operații până se încheie), și spațiu (memoria sau depozitul nevolatil utilizat de către construct). Optimizarea este procesul prin care se produce cod care este cât mai eficient posibil, câteodată accentul punându-se pe spațiu în detrimentul vitezei, sau viceversa. Viteza unui algoritm este măsurată în diverse moduri. Cea mai simplă metodă utilizează complexitatea în timp pentru a determina Ordinul unui algoritm: de multe ori, este posibilă realizarea unui algoritm mai rapid în detrimentul spațiului utilizat. Acesta este și cazul când reutilizezi rezultatele unui calcul intensiv decât să le obții prin recalculare la comandă. Aceasta este și o metodă foarte obișnuită de a crește viteza, chiar într-atât încât limbajele adaugă de obicei elemente speciale pentru a o facilita, cum ar fi în C++ cuvântul cheie "mutable" (în engleză). Spațiul unui algoritm este de fapt alcătuit din două lucruri separate dar în legătură. Prima parte este spațiul pe disc (sau echivalentul acestuia, depinzând de hardware și limbaj) ocupat de către executabilul compilat din codul sursă reprezentare a algoritului.