- Kaj urejamo
Kje so podatki
- datoteke
- notranji pomnilnik
Različne metode
- če vemo za maksimalni podatek: urejanje s koši
- vstavljanje, izbiranje, urejanje z mehurčki, urejanje s kopicami, hitro urejanje, zlivanje, ...
O urejanju
Kje so podatki
Različne metode
Urejanje podatkov v tabeli
Časovna in prostorska zahtevnost
Pogosto odločilni faktor primerjave:
Včasih zahtevna zamenjava
Lastnosti dobrega algoritma za urejanje
stabilnost - urejenih elementov ne zamenjuje
naravnost - urejene elemente naj uredi hitro
Dobra obravnava različnih algoritmov in prikazi delovanja:
Enostavna urejanja
Učinkovita urejanja
Enostavna urejanja
Urejanje z vstavljanjem, izbiranjem ali mehurčki
Enostavnost kode odtehta neučinkovitost!
Urejanje z vstavljanjem
Karte:
Urejanje z vstavljanjem
Demo:
http://max.cs.kzoo.edu/~abrady/java/sorting/InsertionSort.html
http://al.ei.tuat.ac.jp/~sekisita/isort-e.html
http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/sorting.html
http://www.cs.brockport.edu/cs/java/apps/sorters/insertsortaniminp.html
http://cs.smith.edu/%7Ethiebaut/java/sort/demo.html
http://blackcat.brynmawr.edu/~spoonen/JavaProject/sorter.html
Urejanje z vstavljanjem
Urejanje z vstavljanjem
Urejanje z vstavljanjem
Urejanje z vstavljanjem
Urejanje z izbiranjem
Demo
http://al.ei.tuat.ac.jp/~sekisita/ssort-e.html
http://www.cs.adfa.oz.au/teaching/studinfo/ada/Searching/selection_sort.html
http://www.cs.ust.hk/faculty/tcpong/cs102/summer96/aids/select.html
http://www.cs.orst.edu/~minoura/cs162/javaProgs/sort/SelectSort.html
Urejanje z vstavljanjem
Poišči najmanjšega
Končni program
Urejanje z mehurčki
vzamemo zadnji element in ga primerjamo s svojim predhodnikom:
Urejanje z mehurčki
3 4 2 1 5
1 3 4 2 5
1 2 3 4 5
Urejanje z mehurčki
Demo:
http://max.cs.kzoo.edu/~abrady/java/sorting/BubbleSort.html
http://al.ei.tuat.ac.jp/~sekisita/bsort-e.html
http://www.cs.orst.edu/~minoura/cs261/javaProgs/sort/BubbleSort.html
http://www.cs.brockport.edu/cs/java/apps/sorters/bubblesort.html
http://www.cs.brockport.edu/cs/java/apps/sorters/bubblesorteffaniminp.html
http://cs.smith.edu/%7Ethiebaut/java/sort/demo.html
http://blackcat.brynmawr.edu/~spoonen/JavaProject/sorter.html
http://weed.cs.curtin.edu.au/units/cp501/notes/simplebubblesort1.html
Hitro urejanje
Učinkovit algoritem za sortiranje
Dve fazi:
Deljenje
Sortiranje
Hitro urejanje
Deljenje
Poišči mesto za delilni element tako, da
Hitro urejanje
Vladaj
Hitro urejanje
razdeli na dva dela
Hitro urejanje - algoritem
Kako učinkovito preurediti tabelo
Prvi, ki je z leve večji
Prvi, ki je z desne manjši
Kdaj sta kandidata "prava"
Na http://pages.stern.nyu.edu/~panos/java/Quicksort/ si lahko "v živo" ogledate urejanje na poljubnih podatkih.
Preurejanje
Preureditev
Koda
Urejanje z zlivanjem
9, 11, 7, 5, 8, 4, 36
Urejanje z zlivanjem - algoritem
Demo
http://ciips.ee.uwa.edu.au/~morris/Year2/PLDS210/qsort.html
http://www.cs.hope.edu/~alganim/animator/Animator.html
http://www.research.compaq.com/SRC/JCAT/jdk10/sorting/index.html
http://www.student.seas.gwu.edu/~idsv/idsv.html
http://www.cs.orst.edu/~minoura/cs162/javaProgs/sort/QuickSort.html
Zlivanje
V primerjavi s QS
Povezave
http://www2.ics.hawaii.edu/~qizhang/ics665/mergesort.html
http://www.cs.utoronto.ca/~neto/teaching/238/16/mergesort.html
http://www.cs.utoronto.ca/~neto/teaching/238/21/mergesort21.html
http://www.cs.hope.edu/~alganim/animator/Animator.html
http://www.student.seas.gwu.edu/~idsv/idsv.html (poskusi sam!)
http://www.cs.brockport.edu/cs/java/apps/sorters/mergesort_bfaniminp.html(potenca 2 - pari, 4ke, ...)
http://www.cs.brockport.edu/cs/java/apps/sorters/mergesort_df.htmlz delitvijo na pol / pol /pol ...
http://www.geocities.com/SiliconValley/Program/2864/File/Merge1/mergesort.html
Urejanje z zlivanjem
Urejanje z zlivanjem - algoritem
Zlivanje – demo
Zlivanje – korak 1
Zlivanje – korak 2
Zlivanje – korak 3
Zlivanje – korak 4
Zlivanje – korak 5
Zlivanje – korak 6
Zlivanje – korak 7