You are on page 1of 2

Vežbe 1 - teorija

Odredivanje vremenske složenosti algoritma


Ognjen Arsenijević - Oktobar 2019.

Algoritam je niz precizno definisanih koraka koji se moraju izvršiti kako bi od ulaznih po-
dataka dobili izlazne podatke (rezultate).
Kako bi proverili koliko je neki algoritam efikasan odredujemo njegovu vremensku složenost.
Vremenska složenost se može predstaviti kao funkcija koja nam pokazuje kako se menja vreme
izvršavanja algoritma sa povećanjem ulaznih podataka.
Tri najčešće asimptotske notacije koje se koriste za označavanje vremenske složenosti su O(g(n)),
Ω(g(n)) i Θ(g(n)).
O(g(n)) - složenost algoritma u najgorem mogućem slučaju

f (n) = O(g(n)) ⇔ (∃c, n0 > 0) (∀n ≥ n0 ) c · g(n) ≥ f (n)


Ω(g(n)) - složenost algoritma u najboljem mogućem slučaju

f (n) = Ω(g(n)) ⇔ (∃c, n0 > 0) (∀n ≥ n0 ) c · g(n) ≤ f (n)

1
Θ(g(n)) - kada možemo da ograňičimo funkciju f (n) sa obe strane

f (n) = Θ(g(n)) ⇔ (∃c1 , c2 , n0 > 0) (∀n ≥ n0 ) c1 · g(n) ≤ f (n) ≤ c2 · g(n)


Vremenske složenosti koje se najčešće javljaju:
O(1)
O(log n)

O( n)
O(n)
O(n log n)
O(n2 )
O(2n )
O(n!)

You might also like