You are on page 1of 12

SEMINARSKI RAD

Algoritmi i strukture
podataka
Tema: Spoljašnje sortiranje
Profesor: Branislav Jevtović Student: Miloš Đorđević
19/1!
1
Uvod
" ra#unarstvu i informati$i al%oritam sortiranja je pro$es
preuređivanja elemanata ne&o% s&upa po određenom poret&u'
(aj#ešće se &oristi numeri#&i i le&si&o%rafs&i poreda&' Sortiranje
s&upa podata&a je preduslov )a nje%ovo je e*&asno pretra+ivanje'
Sortiranje je ta&ođe vrlo &orisno pri utvrđivanju jedna&osti dva
s&upa podata&a'
,a i)la)ni s&up podata&a- tj' re)ultat sortiranja va+i da predstavlja
permuta$iju ula)no% s&upa i da je sva&i element i)la)no% s&upa
manji ili jedna& pret.odnom elementu po oda/ranom poret&u'
Postoje 0 vrste sortiranja po mestu %de se nala)e poda$i- a to su:
 "nutrašnje sortiranje 1 &oristi se )a podat&e &oji mo%u da
stanu u radnu memoriju- o/i#no u o/li&u ni)a ili ta/ele
 Spoljašnje sortiranje 1 &oristi se )a uređivanje veli&i. s&upova
podata&a &oji se u o/li&u datote&a nala)e na spoljašnji.
memorijama
0
Spoljašnje sortiranje
Spoljašnje sortiranje se &oristi )a podat&e &oje nije mo%uće
smestiti u operativnu memoriju )/o% veli#ine pa se smeštaju na
spoljašnju memoriju u o/li&u datote&a'
2l%oritmi &oji se &oriste )a unutrašnje sortiranje nisu primenljivi )a
spoljašnje )/o% &ara&teristi&a pristupa spoljašnjim memorijama
%de nam se nala)e poda$i'
Spoljašnje sortiranje se ne&ad na)iva i sortiranje datote&a- /aš i)
ra)lo%a što su poda$i smešteni po datote&ama'
Pristup datote&ama je- )a ra)li&u od pristupa poda$ima u ni)u-
o%rani#en što se odra+ava i na al%oritme sortiranja' 3ni su
prila%ođeni i samom uređaju na &ome su poda$i smešteni'
Primer sa trocirenim !rojem "apisa
4atote&a 5 sadr+i 6 )apisa &oji tre/a da se sortiraju' 7lavna
memorija je sposo/na da sortira 1 )apisa istovremeno' "la)ni
fajl 5 se #uva na jednom dis&u- a mi imamo dodatni s$rat$.
8radni9 dis&' 4u+ina ula)no% fajla je : )apisa'
Primećujemo da fajl mo+e da se tretira &ao 6 &ompleta sva&i od
po 1 )apisa' Sva&i set se ra)vrstava i #uva se na dis&u &ao ran'
3vi. 6 ranova će /iti spojeno &ao što sledi'
;
4odelićemo ; /lo&a memorije od &oji je sva&i sposo/an da primi
: )apisa' 4va /lo&a će /iti ula)ni /aferi B1 i B0 i treći B; i)la)ni'
Sada imamo:
19 6 ranova !1- !0- !;- !<- !:- !6 na s$rat$. dis&u
09 ; /afera B1- B0- B;
• #ita se po : )apisa sa !1 u B1
• #ita se po : )apisa sa !0 u B0
• spajaju se B1 i B0 u B; 80=9
• >ada je B; pun- )apisi se snimaju na dis& &ao !11
8u&upno do/ijamo 0 )apisa9
• ?sto ta&o se spajaju !; i !< u !10 8na isti na#in &ao i )a
!1 i !09
• ?sto ta&o se spajaju !: i !6 u !1;
4a&le- od 6 ranova od po 1 )apisa- sada imamo ; rana od po
0 sva&i'
>ora$i se ponavljaju )a !11 i !10 i do/ija se ran od < )apisa'
3vaj ran se spaja sa !1; i do/ijamo sortirani ran veli#ine 6
)apisa'
Metode spoljašnjeg sortiranja
<
Direktno spajanje
(a po#et&u se datote&a smatra s&upom ranova jedini#ne du+ine-
a onda se u sva&om &ora&u du+ina rana udvostru#ava' (a &raju
$ela datote&a postaje jedan ran- što )na#i da je sortirana'
Postupa& ima 0 fa)e 1 fa)a podele i fa)a spajanja'
Prva fa)a je podela datote&e 5 na datote&e 51 i 50 &oje su iste ili
pri/li+no iste veli#ine )a &oje se smatra da sva&i element
predstavlja pose/an ran du+ine l @ 1'
4ru%a fa)a predstavlja spajanje od%ovarajući. parova ranova i)
datote&a 51 i 50 #ime se do/ijaju ranova du+ine l @ 0 &oji se po
redosledu upisuju u datote&u 5'
!e&ur)ivno primenjujući ovaj prin$ip u ne&om i1tom prola)u od
ranova du+ine
l @ 0
i11
do/ijaju se ranovi du+ine l @ 0i'
Postupa& se nastavlja sve do& du+ina rana ne /ude jedna&a du+ini
datote&e'
:
#alansirano direktno spajanje
Balansirano dire&tno spajanje sadr+i još jednu datote&u 5; &oja
slu+i &ao i)la)na i time se odma. u to&u sortiranje vrši u to&u fa)e
spajanja' 4a&le- imamo 0 ula)ne i 0 i)la)ne datote&e'
?) datote&a 51 i 50 se )apisi paralelno šalju i spajaju u 5 i 5; i
istovremeno se sortiraju- a u sledećem &ora&u se i) 5 i 5; vraćaju
u 51 i 50 &oje su nam slo/odne i opet sortiraju' (a &raju se spajaju
6
u datote&u 5 %de imamo sve )apise sortirane &ao jedan ran'
Metod prirodnog spajanja
Metod prirodno% spajanja &oristi postojeću uređenost datote&e
&ao prednost' Ba)ira se na adapta$iji du+ina ranova prema
pola)noj uređenosti datote&e' ? ovde je mo%uća reali)a$ija
ne/alansirano% spajanja sa ; datote&e ili /alansirano% sa <
datote&e'
A
Metod višestrukog spajanja
3vaj metod se &oristi )a spajanje više od 0 rana' Bišestru&o
spajanje po#inje ini$ijalnom distri/u$ijom ranova i) datote&e na m
dodatni. 1 ula)ni. datote&e' 3nda se- u fa)i spajanja- vrši
&om/inovanje m ranova ula)ni. datote&a 8po jedan i) sva&e9 u
jedan ran &oji se šalje u i)la)nu datote&u'
(a ovaj na#in se u sva&om &ora&u /roj ranova smanji )a m puta'
Pored &lasi#no% dire&tno% spajanja- i ovde je mo%uća primena
/alansirano% metoda &od &o%a je potre/no 2m-1 dodatni.
datote&a )a reali)a$iju'
C
Metod polia"nog spajanja
3snovni $ilj metoda polifa)no% spajanja je /olje is&orišćenje
datote&a'
!anovi se ini$ijalno na po%odan na#in neravnomerno raspodele na
m ula)ni. datote&a- a jedna seć ostavlja pra)na' " prvom prola)u
se upravo ona &oristi &ao i)la)na'
Tada )apo#inje postupa& m-tostru&o% spajanja &oji šalje ranove
povećanje du+ine u i)la)nu datote&u' 3vo se radi sve do& se
datote&a sa najmanjim /rojem ranova ne ispra)ni'
9
" tom trenut&u ona postaje i)la)na datote&a- a datote&a &oja je
/ila pra)na- sada sadr+i ranove povećane du+ine i postaje ula)na
datote&a )ajedno sa preostali.
m - 1 datote&a'
Metod kaskadnog spajanja
Metoda &as&adno% spajanja je još jedan tip ne/alansirano%
višestru&o% spajanja &oja ima )a $ilj smanjenje &opiranja )apisa'
>oristi se jedna i)la)na datote&a &oja se menja u sva&oj fa)i- ali
/roj ula)ni. datote&a se menja u )avisnosti od fa)e'
>as&adno spajanje &oristi m+1 i)la)ni. datote&a' Sva&i prola)
spaja m ula)ni. datote&a u jednu i)la)nu sve do& se jedna ula)na
datote&a ne is$rpi' Ta&o se i)la)na datote&a ostavlja na stranu- a u
narednom prola)u ispra+njena ula)na datote&a postaje i)la)na i u
nju se šalju spojeni ranovi i) preostali. m-1 datote&a'
1
Pro$es se ponavlja sve do& se ne do/ije jedan ran &oji je ustvari
sortirana datote&a'
$iteratura
2l%oritmi i stru&ture podata&a 1 Branislav Jevtović- A/C'
.ttp://rti'etf'/%'a$'rs/rti/ri;sp/materijali/S?02S0DPredavanjaD??'pdf
.ttp://en'Ei&ipedia'or%/Ei&i/Sortin%Dal%orit.m
.ttp://en'Ei&ipedia'or%/Ei&i/Mer%eDsort
.ttp://en'Ei&ipedia'or%/Ei&i/F=ternalDsortin%
11
Sadr%aj
"vod''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 0
Spoljašnje sortiranje''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ;
Primer sa tro$ifrenim /rojem )apisa'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';
Metode spoljašnje% sortiranja''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' <
4ire&tno spajanje'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' <
Balansirano dire&tno spajanje''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' :
Metod prirodno% spajanja'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6
Metod višestru&o% spajanja''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' A
Metod polifa)no% spajanja''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' C
Metod &as&adno% spajanja'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 9
Giteratura'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1
Sadr+aj''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 11
10