Definiție

Complexitatea timp se exprima in general sub forma unde reprezintă numărul total de operații pe care programul nostru le va face. nu este exprimat niciodată ca valoare absolută ci mai mult ca și o suma de alte variabile care reprezintă datele de intrare ale programului. Exemplu: reprezintă faptul că programul nostru va face pași unde si sunt date de intrare.

Vezi regulile pentru notația O. Vezi și estimarea timpului de execuție

Tipuri de complexități

  • se numește complexitate constantă. Ea este complexitatea tuturor algoritmilor care nu conțin structuri repetitive.
  • se numește complexitatea logaritmică. Exemple în acest sens reprezintă algoritmul de algoritmul de căutare binară sau transformarea în baza 2.
  • se numește complexitate radical. Un exemplu în acest sens este algoritmul de determinarea divizorilor unui număr.
  • se numește complexitate liniară. Ea este cea mai de dorit complexitate când operăm pe un vector sau șir. Exemple în acest sens sunt algoritmii de căutare secvențială pe vector și sortarea prin numărare.
  • are ca exemple clasice sunt metodele de sortare eficiente Quick Sort și Merge Sort, sau o căutare binară de elemente într-un vector cu elemente.
  • se numește complexitate pătratică. Ea este cea mai de dorit pentru lucrul cu matrice (e necesară pentru citirea, afișarea și parcurgerea lor). Alte exemple le reprezintă algoritmii de sortare prin inserție, selecție sau bubble sort.
  • se numește complexitate factorială. Un exemplu îl reprezintă generarea permutărilor sau alți algoritmi backtracking care generează toate mulțimile.
  • se numește complexitate exponențială. Sunt extrem de lenți, e foarte greu de calculat cu . Un exemplu în acest sens este algoritmul de backtracking care generează toate mulțimile de . De asemenea poate fi aproximat la , iar sunt și ele numite complexități exponențiale.

Erori

“Time limit exceeded” este o eroare des întâlnita care semnifică faptul că complexitatea timp a algoritmului proiectat de noi nu este suficient de bună, motiv pentru care trebuie sa proiectăm un nou algoritm mai bun din acest punct de vedere.