Professional Documents
Culture Documents
a na obi
a na obi
ni
ni
red
red
sli sli nost nost s obi s obi nim redom je u tome nim redom je u tome to se podaci mogu dodavati (ubacivati) to se podaci mogu dodavati (ubacivati)
u prioritetni red te skidati (izbacivati) iz njega. u prioritetni red te skidati (izbacivati) iz njega.
razlika razlika je u tome je u tome to se ne skida onaj podatak koji je prvi bio dodan, ve to se ne skida onaj podatak koji je prvi bio dodan, ve
onaj koji ima najve onaj koji ima najve u vrijednost (najve u vrijednost (najve i prioritet) i prioritet)
prioritetni red mo
prioritetni red mo
e se prikazati na razne na
e se prikazati na razne na
ine:
ine:
sortiranom vezanom listom sortiranom vezanom listom
sortiranim binarnim stablom sortiranim binarnim stablom
najprirodniji i naju
najprirodniji i naju
inkovitiji na
inkovitiji na
u gomile (hrpe,
u gomile (hrpe,
heap
heap
)
)
Gomila
Gomila
gomila je
gomila je
potpuno
potpuno
binarno stablo gdje se
binarno stablo gdje se
vor u smislu
vor u smislu
te relacije ve
te relacije ve
e
e
e se
e se
n
n
elemenata slo
elemenata slo
i u gomilu, pa je najjednostavnije
i u gomilu, pa je najjednostavnije
koristiti potpuno binarno stablo za prikazivanje gomile, makar b
koristiti potpuno binarno stablo za prikazivanje gomile, makar b
i i
i i
druga binarna stabla mogla zadovoljavati
druga binarna stabla mogla zadovoljavati
to se ostvaruje ubacivanjem to se ostvaruje ubacivanjem jednog po jednog jednog po jednog elementa u gomilu, elementa u gomilu, uvaju uvaju i i
svojstvo gomile svojstvo gomile
po po inje se od prazne gomile inje se od prazne gomile
na "dno" (list) gomile dodaje se na "dno" (list) gomile dodaje se lan koji se onda usporeuje i zamjenjuje sa lan koji se onda usporeuje i zamjenjuje sa
svojim roditeljem, praroditeljem, prapraroditeljem itd. dok ne p svojim roditeljem, praroditeljem, prapraroditeljem itd. dok ne postane manji ostane manji
ili jednak nekoj od tih vrijednosti ili jednak nekoj od tih vrijednosti
GomiluStvori
Analiza najgoreg slu
Analiza najgoreg slu
aja
aja
za analizu najgoreg slu
za analizu najgoreg slu
2
2
k k
-
-
1
1
iz ovoga slijedi: iz ovoga slijedi:
2 2
k k- -1 1
< < n + n + 1 1 ( (k k 1) log 2 1) log 2 < log ( < log (n + n + 1) 1) k k < log < log
2 2
( (n + n + 1) + 1 1) + 1
n + 1 n + 1 2 2
k k
log (n+1) log (n+1) k k log log 2 2 log log
2 2
(n+1) (n+1) k k
log log
2 2
(n+1) (n+1) k < k < log log
2 2
( (n + n + 1) + 1 1) + 1 odnosno odnosno k = k = log log
2 2
(n+ (n+1 1) )
Primjer
Primjer
za
za
n
n
= 14 treba
= 14 treba
log
log
2 2
15
15
=
=
ln
ln
15/ln 2
15/ln 2
=
=
2.70805/0.693147
2.70805/0.693147
=
=
3.9
3.9
= 4 razine
= 4 razine
za
za
n
n
= 15 treba
= 15 treba
log
log
2 2
16
16
=
=
4
4
= 4 razine
= 4 razine
za
za
n
n
= 16 treba
= 16 treba
log
log
2 2
17
17
=
=
4.087
4.087
= 5 razina
= 5 razina
Ubrzanje algoritma
Ubrzanje algoritma
-
-
I
I
u najgorem slu
u najgorem slu
aju, petlja
aju, petlja
while
while
izvr
izvr
to je za red veli
to je za red veli
ine bolje
ine bolje
Ubrzanje algoritma
Ubrzanje algoritma
-
-
II
II
za pobolj
za pobolj
e od krajnjih
e od krajnjih
e naru
e naru
avaju to svojstvo
avaju to svojstvo
tada je samo potrebno tu nepravilnost ispraviti i opet dobivamo
tada je samo potrebno tu nepravilnost ispraviti i opet dobivamo
eljenu gomilu.
eljenu gomilu.
to to ini funkcija ini funkcija podesi podesi u primjeru u primjeru
za krajnje za krajnje vorove svojstvo gomile je zadovoljeno, pa treba u vorove svojstvo gomile je zadovoljeno, pa treba u
stvori_gomilu stvori_gomilu funkciji provesti popravljanje svojstva gomile samo za funkciji provesti popravljanje svojstva gomile samo za
korijen stabla korijen stabla
GomiluPodesi
Stvaranje gomile za ulazni niz podataka:
Stvaranje gomile za ulazni niz podataka:
10,63,18,71,7,51,32
10,63,18,71,7,51,32
Primjer stvaranja gomile
Primjer stvaranja gomile
10 10
63 63
18 18
71 71 7 7 51 51 32 32
10 10
63 63
51 51
71 71 7 7 18 18 32 32
10 10
71 71
51 51
63 63 7 7 18 18 32 32
71 71
63 63
51 51
10 10 7 7 18 18 32 32
Ubrzanje algoritma
Ubrzanje algoritma
za
za
n
n
podataka,
podataka,
2
2
k k- -1 1
n < 2
n < 2
k k
, broj razina je
, broj razina je
k =
k =
log
log
2 2
(n+1)
(n+1)
za najgori slu
za najgori slu
aj broj iteracija u
aj broj iteracija u
podesi
podesi
iznosi
iznosi
k
k
-
-
i
i
za
za
vor na
vor na
razini
razini
i
i
gdje ima najvi
gdje ima najvi
e
e
2
2
i i- -1 1
vorova
vorova
vrijeme izvoenja za vrijeme izvoenja za stvori_gomilu stvori_gomilu je: je:
s slijedi ekvivalentni izraz kad se izbaci faktor lijedi ekvivalentni izraz kad se izbaci faktor
0
0 i obrne redosl i obrne redosli ijed sumacije: jed sumacije:
( )
k
i
i
i k
1
1
2 eksponent se mijenja od eksponent se mijenja od 0 0 do do k k - -1 1, ,
a faktor od a faktor od k k - -1 1 do do 0 0
) ( 2
2
2 2 2
1
1
1
1
1
1
1
1
n O n
i
n i i
k
i
i
k
i
i k
k
i
i k
= =
=
=
2
2
k k- -1 1
n
n
suma reda te suma reda te i i
prema prema 2 2
Ubrzanje algoritma
Ubrzanje algoritma
v
v
rijeme izvoenja za najgori slu
rijeme izvoenja za najgori slu
aj algoritma
aj algoritma
stvori_gomilu
stvori_gomilu
je
je
O(n)
O(n)
,
,
to je za red veli
to je za red veli
ine bolje od
ine bolje od
O(n log
O(n log
2 2
n)
n)
za uzastopno
za uzastopno
kori
kori
tenje funkcije
tenje funkcije
ubaci
ubaci
f
f
unkcija
unkcija
stvori_gomilu
stvori_gomilu
tra
tra
prisutni, dok
prisutni, dok
ubaci
ubaci
mo
mo
e
e
biti napravljena za razne relacije njenih elemenata
biti napravljena za razne relacije njenih elemenata
gomilu s relacijom gomilu s relacijom ve ve i od i od zovemo zovemo max heap max heap
gomilu gomilu s relacijom s relacijom manji od manji od zovemo zovemo min heap min heap
Sortiranje gomilom
Sortiranje gomilom
h
h
eap sort:
eap sort:
element s vrha gomile zamjenjuje se s posljednjim elementom
element s vrha gomile zamjenjuje se s posljednjim elementom
polja
polja
gomila se skra
gomila se skra
ava
ava
s
s
lo
lo
enost pode
enost pode
avanja je
avanja je
O(log
O(log
2 2
n)
n)
t
t
o se obavlja
o se obavlja
n
n
puta pa je slo
puta pa je slo
enost sorta
enost sorta
O(nlog
O(nlog
2 2
n)
n)
razlika u vremenu izvoenja za razliite redove veliine
sloenosti postane znaajna za veliki n
Sortovi
Sortovi
Zadaci za vje
Zadaci za vje
bu
bu
Zadan je niz ulaznih podataka:
Zadan je niz ulaznih podataka:
12, 15, 5, 3, 7, 2 18, 11, 4, 10
12, 15, 5, 3, 7, 2 18, 11, 4, 10
a) a) treba nacrtati potpuno binarno stablo koje je nastalo slijednim treba nacrtati potpuno binarno stablo koje je nastalo slijednim upisom upisom
ulaznih podataka ulaznih podataka
b) b) treba nacrtati podatkovnu strukturu gomila u koju su pohranjeni treba nacrtati podatkovnu strukturu gomila u koju su pohranjeni ulazni ulazni
podaci podaci
c) c) koliko iznosi apriorno vrijeme izvoenja za pretvorbu potpunog b koliko iznosi apriorno vrijeme izvoenja za pretvorbu potpunog binarnog inarnog
stabla u strukturu gomila? stabla u strukturu gomila?
Zadaci za vje
Zadaci za vje
bu
bu
Zadan je niz ulaznih podataka tipa
Zadan je niz ulaznih podataka tipa
int
int
:
:
12, 5, 4, 10, 7, 8 11
12, 5, 4, 10, 7, 8 11
a) a) t treba nacrtati stablo koje predstavlja strukturu reba nacrtati stablo koje predstavlja strukturu gomila gomila, takvu da omogu , takvu da omogu uje uje
rje rje enje zadatka pod b) enje zadatka pod b)
b) b) t treba ilustrirati kako radi silazno sortiranje kori reba ilustrirati kako radi silazno sortiranje kori tenjem strukture gomila tenjem strukture gomila
( (heap sort heap sort) )
c) c) k koliko je apriorno vrijeme potrebno za sortiranje oliko je apriorno vrijeme potrebno za sortiranje
n
n podataka? podataka?
Zadaci za vje
Zadaci za vje
bu
bu
Napisati program koji
Napisati program koji
e u cjelobrojnom polju od
e u cjelobrojnom polju od
n
n
lanova prona
lanova prona
i
i
k
k
-
-
ti najve
ti najve
i
i
lan polja.
lan polja.
a) a) U U itano polje sortirati po padaju itano polje sortirati po padaju im vrijednostima i ispisati im vrijednostima i ispisati lan s lan s
indeksom indeksom k k- -1 1. .
b) b) U U itati itati k k lanova polja, sortirati ih po padaju lanova polja, sortirati ih po padaju im vrijednostima. U im vrijednostima. U itavati itavati
preostale preostale lanove polja. Ako je pojedini lanove polja. Ako je pojedini lan manji od onoga s indeksom lan manji od onoga s indeksom
k k- -1 1, ignorirati ga, ako je ve , ignorirati ga, ako je ve i umetnuti ga na pravo mjesto, a izbaciti i umetnuti ga na pravo mjesto, a izbaciti lan lan
polja koji bi sad imao indeks polja koji bi sad imao indeks k k. .
c) c) Varirati postupke sortiranja te odrediti pripadna apriorna vreme Varirati postupke sortiranja te odrediti pripadna apriorna vremena i na i
izmjeriti aposteriorna vremena izvoenja izmjeriti aposteriorna vremena izvoenja. .
Odrediti apriorna vremena trajanja, a izmjeriti aposteriorna
Odrediti apriorna vremena trajanja, a izmjeriti aposteriorna
vremena. Varirati postupak sortiranja.
vremena. Varirati postupak sortiranja.