PG-04-2010 (1)
-
Upload
slavisamarinkovic -
Category
Documents
-
view
218 -
download
0
Transcript of PG-04-2010 (1)
-
8/19/2019 PG-04-2010 (1)
1/14
Algoritmi i programiranjeAlgoritmi i programiranje
SortiranjeSortiranje
-
8/19/2019 PG-04-2010 (1)
2/14
SortiranjeSortiranje Sortiranje je proces preuredjenja datog skupaSortiranje je proces preuredjenja datog skupa
objekata po odredjenom kriterijumu.objekata po odredjenom kriterijumu.Svrha sortiranja je da se kasnije olakša pretraživanjeSvrha sortiranja je da se kasnije olakša pretraživanje
objekataobjekataobjekti se sortiraju u telefonskim imenicimaobjekti se sortiraju u telefonskim imenicima
sadržaju knjigesadržaju knjige rečnicimarečnicima
magacinima,...magacinima,...
Sortiranje je jedna od najvažnijih aktivnosti u obradiSortiranje je jedna od najvažnijih aktivnosti u obradipodatakapodatakasortiranje je odličan primer na kome se može pokazatisortiranje je odličan primer na kome se može pokazati
raznovrsnost algoritamaraznovrsnost algoritama
-
8/19/2019 PG-04-2010 (1)
3/14
Sortiranje – formalna denicijaSortiranje – formalna denicija Ako imamo dat nizAko imamo dat niz
aa!!, a, a"", ..., a, ..., ann sortiranje se sastoji u permutovanju ovog niza usortiranje se sastoji u permutovanju ovog niza u
nizniz
aak!k!, a, ak"k", ..., a, ..., aknkn
tako da za datu funkciju uredjenjatako da za datu funkciju uredjenja f,f, važivaži
f#af#ak!k!$$ ≤≤ f#af#ak"k"$$ ≤≤...... ≤≤ f#af#aknkn$$
%etode za sortiranje se mogu svrstati u tri%etode za sortiranje se mogu svrstati u trikategorije na osnovu koriš&enog metoda'kategorije na osnovu koriš&enog metoda'
!.!. Sortiranje umetanjemSortiranje umetanjem
".". Sortiranje selekcijomSortiranje selekcijom
(.(. Sortiranje zamenomSortiranje zamenom
-
8/19/2019 PG-04-2010 (1)
4/14
SorSorttiranje umetanjemiranje umetanjem )vaj metod se često koristi kod igranja karata)vaj metod se često koristi kod igranja karata
*arte se koncepcijski podele u dva niza*arte se koncepcijski podele u dva nizaodredišni niz aodredišni niz a!! ,..., a,..., ai+!i+!
izvorni niz aizvorni niz aii, ..., a, ..., ann
svakom koraku, počev od svakom koraku, počev od i-"i-" i pove&avaju&ii pove&avaju&i ii zaza !!,,
uzima se i+ti element iz izvornog niza i prebacuje uuzima se i+ti element iz izvornog niza i prebacuje uodredišni niz umetanjem na odredjeno mesto, tako daodredišni niz umetanjem na odredjeno mesto, tako daodredišni niz uvek bude uredjen po izabranomodredišni niz uvek bude uredjen po izabranomkriterijumukriterijumu
-
8/19/2019 PG-04-2010 (1)
5/14
Sortiranje umetanjem – primerSortiranje umetanjem – primer
polaznipolazniniz #i-!$niz #i-!$
//// !"!" "" 00 !1!1 22 2323
i-"i-" //// !"!" "" 00 !1!1 22 2323
i-(i-( !"!" //// "" 00 !1!1 22 2323
i-i- !"!" "" //// 00 !1!1 22 2323
i-/i-/ !"!" "" //// 00 !1!1 22 2323
i-2i-2 !"!" !1!1 "" //// 00 22 2323
i-3i-3 22 !"!" !1!1 "" //// 00 2323
i-1i-1 22 !"!" !1!1 "" //// 2323 00
plavo – odredišni niz, crveno – izvorni niz
-
8/19/2019 PG-04-2010 (1)
6/14
Sortiranje umetanjem + algoritamSortiranje umetanjem + algoritam4lementi odredišnog niza se pomeraju u desno dok se4lementi odredišnog niza se pomeraju u desno dok se
ne pronadje pozicija elementa koji se ubacuje, iline pronadje pozicija elementa koji se ubacuje, ili
dok se ne dodok se ne do55e do početka nizae do početka niza
-
8/19/2019 PG-04-2010 (1)
7/14
Sortiranje umetanjem – algoritamSortiranje umetanjem – algoritamsort+
umetanjem
for i'-",n
pom'-a#i$ j'-i+!
pom6a#j$ Λ j≥!
a#j7!$'-a#j$ j'-j+!
a#j7!$'-pom
kraj
ne
-
8/19/2019 PG-04-2010 (1)
8/14
Sortiranje selekcijomSortiranje selekcijom %etod se bazira na slede&em principu%etod se bazira na slede&em principu
pronadji najmanji elementpronadji najmanji elementpostavi ga na mesto apostavi ga na mesto a!!ponovi postupak za preostalih n+! elemenata, zatimponovi postupak za preostalih n+! elemenata, zatim
sa n+" elementa, dok ne ostane samo jedan #najve&i$sa n+" elementa, dok ne ostane samo jedan #najve&i$
elementelement
-
8/19/2019 PG-04-2010 (1)
9/14
Sortiranje selekcijom – primerSortiranje selekcijom – primer
//// !"!" "" 00 !1!1 22 2323
22 //// !"!" "" 00 !1!1 2323
22 !"!" //// "" 00 !1!1 2323
22 !"!" !1!1 "" 00 //// 2323
22 !"!" !1!1 "" 00 //// 2323
22 !"!" !1!1 "" //// 00 2323
22 !"!" !1!1 "" //// 00 2323
22 !"!" !1!1 "" //// 2323 00
polazni niz
-
8/19/2019 PG-04-2010 (1)
10/14
Sortiranje selekcijom – algoritamSortiranje selekcijom – algoritamsort-selekcija
for i:=1,n-1
min:=a(i)
ind:=i
for j:=i+1,n
a(j) < min
min:=a(j)
ind:=j
a(ind):=a(i)
a(i):=min
kra
j
ne
-
8/19/2019 PG-04-2010 (1)
11/14
Sortiranje zamenom mesta #bubbleSortiranje zamenom mesta #bubblesort$sort$ %ada oba prethodna algoritma sortiranja%ada oba prethodna algoritma sortiranja
koriste zamenu mesta, kod slede&eg algoritmakoriste zamenu mesta, kod slede&eg algoritma je zamena mesta dominantan proces' je zamena mesta dominantan proces'algoritam se bazira na poredjenju i zameni mesta paraalgoritam se bazira na poredjenju i zameni mesta para
susednih elemenata dok se svi elementi ne sortiraju.susednih elemenata dok se svi elementi ne sortiraju.
algoritam je poznat pod nazivom 8bubble sort9 ,algoritam je poznat pod nazivom 8bubble sort9 ,bubble – mehuri& #vode$bubble – mehuri& #vode$
-
8/19/2019 PG-04-2010 (1)
12/14
:ubble sort – primer:ubble sort – primer
inicijalninicijalnoo
i-"i-" i-(i-( i-i- i-/i-/ i-2i-2 i-3i-3 i-1i-1
22 22 22 22 22 22 22
//// !"!" !"!" !"!" !"!" !"!" !"!"
!"!" //// !1!1 !1!1 !1!1 !1!1 !1!1
"" !"!" //// "" "" "" ""
00 "" !1!1 ////
!1!1 00 "" "" //// //// //// ////22 !1!1 00 2323 2323 2323 2323 2323
2323 2323 2323 00 00 00 00 00;apomena'
-
8/19/2019 PG-04-2010 (1)
13/14
:ubble sort – algoritam:ubble sort – algoritam
bbble sort
for i:=!,n
for j:=n,i,-1
a(j-1) " a(j)
pom:=a(j-1)
a(j-1):=a(j)
a(j):=pom
kraj
ne
-
8/19/2019 PG-04-2010 (1)
14/14
:ubble sor:ubble sort algoritam – varijantat algoritam – varijanta"" sort-selekcija
promena=tre
promena=false
for i:=n,!
a(i) < a(i-1)
promena=tre
pom=a(i-1)a(i-1)=a(i)
a(i)=pom
kraj
ne
promenane
Ako nemaAko nemapromenepromene,, okonokončajčajizvršenjeizvršenje