1 / 17

Strukture podataka i algoritmi

Strukture podataka i algoritmi. Drugo predavanje Sortiranje listi. Sortiranje. Sortiranje liste. za j  2 do dužina [A] var  A[ j ] >>>umetni A[ j ] u sekvencu A[1 .. j-1]<<< i  j -1 dok je i > 0 i A[ i ] > var A[ i+1 ]  A[ i ]

Télécharger la présentation

Strukture podataka i algoritmi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Strukture podataka i algoritmi Drugo predavanje Sortiranje listi

  2. Sortiranje

  3. Sortiranje liste

  4. za j  2 do dužina [A] var  A[ j ] >>>umetni A[ j ] u sekvencu A[1 .. j-1]<<< i  j -1 dok je i > 0 i A[ i ] > var A[ i+1 ]  A[ i ] i  i-1 A[ i+1 ]  var Algoritam sortiranja umetanjem

  5. Invarijante algoritma (postupka) • Istinitost prije djelovanja (početka) • Ispravnost prvog koraka • Trivijalno sortirano • Za j=2 A[1,…,j-1] ima samo jedan element • Ako je postupak valjan prije koraka iteracije valjan je i u idućem koraku (indukcija) • Nakon konačnog broja valjanih instrukcija dobivamo ispravan rezultat • konačnost petlje

  6. Inicijalizacija • Istinitost prije djelovanja • Trivijalno sortirano • Za j=2 A[1,…,j-1] ima samo jedan element • Invarijante algoritma

  7. Postupak • vanjska petlja • unutarnja petlja • uspoređivanje • posmak • Invarijante algoritma

  8. Završetak zadatka • Uređena lista • Invarijante algoritma

  9. za j  2 do dužina [A] var  A[ j ] >umetni A[ j ] u sekv. A[1 .. j-1]< ij-1 dok je i>0 i A[ i ] > var A[ i+1 ]  A[ i ] ii-1 A[ i+1 ] var C1*(n-1) C2*(n-1) 0*(n-1) C4*(n-1) C5*Sj za j=2..n C6*S(j-1) za j=2..n C7*S(j-1) za j=2..n C8*(n-1) Analiza zadatka

  10. Zadaća • Zbroji sve doprinose iz prethodne analize i izrazi vrijeme potrebno za izvršenje algoritma kao funkciju od n (broja članova liste koju treba sortirati) u najpovoljnijem i najnepovoljnijem slučaju rasporeda elemenata u listi! • Odredi vodeću potenciju u tom razvoju za oba slučaja! • Rezultat pošalji na adresu: dandroic@phy.hr

  11. Funkcija brzine rasta • Funkcionalnu ovisnost broja postupaka o vrijednosti “n” broja elemenata u listi izražavamo najistaknutijom potencijom od “n” u razvoju analize algoritma • q(n) µ n2 npr. za naš primjer • Najnepovoljniji slučaj • Najpovoljniji slučaj • Najvjerojatniji slučaj • diskusija

  12. Sortiranje Odabirom Elementa u listi po zadanom kriteriju • Napravi shematski program u apstraktnom kodu i izračunaj efikasnost algoritma sortiranja ako je ideja postupka traženje najvećeg elementa u nesortiranom dijelu (pod) liste • Odredi vodeću potenciju u tom razvoju za oba slučaja (povoljniji i nepovoljniji) ! • Rezultat pošalji na adresu: dandroic@phy.hr

  13. “Podjeli pa vladaj” princip • Osnovna karakteristika rekurzivnost • Podjela problema • Savladavanje pod problema; ponekad i na najizravniji način • Ponavljanje postupka • Rješenje • Mogućnost algoritmiziranja problema rekurzivnim postupkom i prednosti nad drugim očiglednijim idejama rješavanja problema

  14. Sortiranje umetanjem listi (Merge Sort a-d)

  15. Sortiranje umetanjem listi (Merge Sort e-i)

  16. MERGE( A, p, q, r) n1 q - p +1 n2  r - q napravi polja L[1,.. n1+1], R[1,.. n2+1] za i  1 do n1 L [ i ]  A [ p + i - 1 ] za j  1 do n2 R [ j ]  A [ q + j ] L [ n+1 ] µ R [ n+1 ] µ i  1 j  1 za k  p do r ako je L[ i ] £ R[ j ] tada A [ k ]  L [ i ] i  i + 1 inače A [ k ]  R [ j ] j  j + 1 Sortiranje umetanjem listi

  17. Analiza (MERGE) algoritma sortiranja umetanjem listi • Odredi funkciju q(n) - vodeću potenciju broja operacija u ovisnosti o broju elemenata u nesortiranoj listi odredi invarijante algoritma diskutiraj probleme • Rezultat pošalji na adresu: dandroic@phy.hr

More Related