Sunteți pe pagina 1din 2

Complexități algoritmi

Adunarea a două numere a+b


Aflarea sumei 1+2+3+...+n (se
COMPLEXITATE CONSTANTĂ O(1) află cu formula n*(n+1)/2
Aflarea parității unui număr
(n%2)
COMPLEXITATE LOGARITMICĂ Căutare binară
(împărțiri repetate la 2 a numărului de Divide et Impera
elemente considerate) O(log n) Căutare într-un arbore binar
Operații cu divizorii unui număr
COMPLEXITATE RADICAL O(sqrt n) (putem să prelucrăm divizorii
(setul se împarte în mai multe seturi) unui număr parcurgând toate
numerele de la 1 la sqrt(n) ).
Parcurgerea unui vector
Căutarea liniară în vector
COMPLEXITATE LINIARĂ O(n) Compararea a două șiruri de
caractere
Minimul dintr-un șir
Merge Sort
COMPLEXITATEA O(n log n) –
Quick Sort
metodele eficiente de sortare Heap Sort
Parcurgerea unei matrici
pătratice de latură n
COMPLEXITATE PĂTRATICĂ O(n2) sau
Sortarea prin inserție
O(n*n)
Sortarea prin selecție
Bubble Sort
COMPLEXITATE CUBICĂ O(n3) sau
Înmulțirea a două matrici
O(n*n*n)
Determinarea valorii unui
COMPLEXITATE POLINOMIALĂ polinom
COMPLEXITATE EXPONENȚIALĂ Turnurile din Hanoi
Calcularea tuturor permutărilor
unui număr folosind metoda
backtracking (fără afișare)
COMPLEXITATE FACTORIAL O(n!) Calcularea partițiilor unui
număr folosind metoda
backtracking (fără afișare)
Alți algoritmi backtracking
Calcularea permutărilor unei
COMPLEXITĂȚI „COMBINATE” submulțimi și afișarea de
soluții O(n!*n)
Notații:
Ω – cazul cel mai bun – cazul favorabil (timpul minim)
O – cazul cel mai rău – cazul defavorabil (timpul maxim)
Θ – cazul mediu – media aritmetică a timpilor de execuție corespunzătoare tuturor cazurilor
posibile

S-ar putea să vă placă și