You are on page 1of 14

BUCKET SORT

Kako radi?

1. stvaraju se prazne koarice (eng. buckets)

2.prolazak kroz poetni niz i smjetanje svakog


elementa u odgovarajuu koaricu

3. svaku zasebnu koaricu se sortira

4. elementi se izvade takvi kavi jesu iz koarica i


spoje se u jedinstveni niz
Cijeli brojevi Moramo nai divider broj s kojim emo dijeliti
svaki element poetnog niza kako bismo im nali
pripadajuu koaricu.
Niz arr

divider= ceil((max+1) / broj koarica)


divider= ceil(13/7)
divider= 2
Zatim naemo u koju koaricu ide pojedini
Cijeli brojevi element. Oznait emo taj broj sa j, a koristimo
index i da eemo po nizu

Niz arr

j=floor(arr[i]/divider)
=floor(5/2)
=floor(2.5)
=2

i to e se izvriti za svaki element


Cijeli brojevi

Niz arr
Cijeli brojevi

Niz arr

Novi niz
Sortiranje pojednih koarica

Za sortiranje pojedinih koarica upotrebljava se :

drugi algoritam za sortiranje najee


insertion sort

rekurzivno bucket sort


Prednosti

Sortiranje nizova iji su elementi (vrijednosti)


jednoliko rasporeeni.
npr.

5 3 6 4 8 9 7 1 2 10

0.23 0.56 0.87 0.44 0.91 0.15 0.36 0.62 0.78 0.05
Mane

Sortiranje nizova vrlo slinih elemenata


npr.

50 56 12 53 58 54 55 63 91 51

0.23 0.57 0.28 0.21 0.87 0.25 0.24 0.29 0.91 0.22
Optimizacija insertion sorta

vraanje ne sortiranih koarica u poetni niz

sortiranje cjelokupnog niza insertion sortom

bitno krae
vrijeme sortiranja -> vrijeme rada insertion sorta
ovisi o udaljenosti elementa od njegove konane pozicije
Sloenost

sloenost nije konstantna, ovisi o unosu (inputu)

prosjeno sloenost iznosi O(n+k),


n duljina niza, k broj koarica

u najgorem sluaju sloenost iznosi O(n**2) to bucket sort


ini jednako sporim kao bubble sort

You might also like