Condiție prealabilă - Notații asimptotice , Proprietățile notațiilor asimptotice , Analiza algoritmilor
1. Notație O mare (O):
Este definită ca limita superioară, iar limita superioară a unui algoritm este cea mai mare cantitate de timp necesară (performanța în cel mai rău caz).
Notație O mare este folosit pentru a descrie limita superioară asimptotică .
Matematic, dacă f(n) descrie timpul de rulare al unui algoritm; f(n) este O(g(n)) dacă există o constantă pozitivă C și n0 astfel încât,
0 <= f(n) = n0
n = folosit pentru a da limita superioară a unei funcții.
Dacă o funcție este Pe) , este automat O (n-pătrat) de asemenea.
Exemplu grafic pentru O mare:
tipuri de date sechel
2. Notație Omega mare (Ω):
Se definește ca limita inferioară și limita inferioară a unui algoritm este cea mai mică cantitate de timp necesară (cel mai eficient mod posibil, cu alte cuvinte cel mai bun caz).
Exact ca O notaţie oferi o limita superioară asimptotică , Oh notaţie prevede limita inferioară asimptotică .
Lăsa f(n) definiți timpul de rulare al unui algoritm;
f(n) se spune a fi Ω(g(n)) dacă există o constantă pozitivă C și (n0) astfel încât
0 <= Cg(n) = n0
cum să obțineți emoji-uri iPhone pe Android
n = folosit pentru limita inferioară dată a unei funcții
Dacă o funcție este Ω(n-pătrat) este automat Oh(n) de asemenea.
Exemplu grafic pentru Omega mare (Ω):
3. Notație Theta mare (Θ):
Este definită ca cea mai strânsă limită, iar cea mai strânsă legătură este cea mai bună dintre toate cazurile cele mai nefavorabile pe care le poate lua algoritmul.
Lăsa f(n) definiți timpul de rulare al unui algoritm.
f(n) se spune că este Θ(g(n)) dacă f(n) este O(g(n)) și f(n) este Ω(g(n)).
Din punct de vedere matematic,
0 <= f(n) = n0
0 <= C2g(n) = n0Unind ambele ecuații, obținem:
algoritmul lui 'prim'0 <= C2g(n) <= f(n) = n0
Ecuația înseamnă pur și simplu că există constante pozitive C1 și C2 astfel încât f(n) este sandwich între C2 g(n) și C1g(n).
Exemplu grafic de Theta mare (Θ) :
Diferența dintre Big oh, Big Omega și Big Theta:
Da nu. | Big O | Big Omega ( Oh) | Theta mare (eu) |
---|---|---|---|
1. | Este ca (<=) rata de creștere a unui algoritm este mai mică sau egală cu o anumită valoare. | Este ca (>=) rata de creștere este mai mare sau egală cu o valoare specificată. | Este ca (==) adică rata de creștere este egală cu o valoare specificată. |
2. | Limita superioară a algoritmului este reprezentată prin notația Big O. Doar funcția de mai sus este mărginită de Big O. Limita superioară asimptotică este dată de notația Big O. | Limita inferioară a algoritmului este reprezentată de notația Omega. Limita inferioară asimptotică este dată de notația Omega. | Limitarea funcției de sus și de jos este reprezentată prin notația theta. Comportamentul asimptotic exact este realizat de această notație theta. |
3. | O mare – Limită superioară | Big Omega (Ω) – Limită inferioară | Big Theta (Θ) – Tight Bound |
4. | Este definită ca limita superioară și limita superioară a unui algoritm este cea mai mare cantitate de timp necesară (performanța în cel mai rău caz). | Se definește ca limita inferioară și limita inferioară a unui algoritm este cea mai mică cantitate de timp necesară (cel mai eficient mod posibil, cu alte cuvinte cel mai bun caz). | Este definită ca cea mai strânsă limită și cea mai strânsă legătură este cea mai bună dintre toate cele mai nefavorabile cazuri pe care algoritmul le poate lua. |
5. | Matematic: Big Oh este 0 <= f(n) = n0 | Matematic: Big Omega este 0 <= Cg(n) = n0 | Matematic – Big Theta este 0 <= C2g(n) <= f(n) = n0 |
Pentru mai multe detalii, vă rugăm să consultați: Proiectarea și analiza algoritmilor .