pg-04-2010 (1)

Upload: slavisamarinkovic

Post on 08-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 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