Strukture podataka i algoritmi Drugo predavanje Sortiranje listi

  • Slides: 17
Download presentation
Strukture podataka i algoritmi Drugo predavanje Sortiranje listi

Strukture podataka i algoritmi Drugo predavanje Sortiranje listi

Sortiranje

Sortiranje

Sortiranje liste

Sortiranje liste

Algoritam sortiranja umetanjem 1. za j 2 do dužina [A] 2. var A[ j

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

Invarijante algoritma (postupka) v Istinitost prije djelovanja (početka) Ø Ispravnost prvog koraka Ø Trivijalno

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

Inicijalizacija v. Invarijante algoritma Istinitost prije djelovanja Trivijalno sortirano Za j=2 A[1, …, j-1]

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

Postupak v. Invarijante algoritma vanjska petlja unutarnja petlja uspoređivanje posmak

Postupak v. Invarijante algoritma vanjska petlja unutarnja petlja uspoređivanje posmak

Završetak zadatka v. Invarijante algoritma Uređena lista

Završetak zadatka v. Invarijante algoritma Uređena lista

Analiza zadatka 1. 2. 3. 4. 5. 6. 7. 8. za j 2 do

Analiza zadatka 1. 2. 3. 4. 5. 6. 7. 8. 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 C 1*(n-1) C 2*(n-1) 0*(n-1) C 4*(n-1) C 5*Sj za j=2. . n C 6*S(j-1) za j=2. . n C 7*S(j-1) za j=2. . n C 8*(n-1)

Zadaća q Zbroji sve doprinose iz prethodne analize i izrazi vrijeme potrebno za izvršenje

Zadaća q 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! q Odredi vodeću potenciju u tom razvoju za oba slučaja! q Rezultat pošalji na adresu: dandroic@phy. hr

Funkcija brzine rasta Funkcionalnu ovisnost broja postupaka o vrijednosti “n” broja elemenata u listi

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) µ n 2 npr. za naš primjer – Najnepovoljniji slučaj – Najvjerojatniji slučaj – diskusija

Sortiranje Odabirom Elementa u listi po zadanom kriteriju q Napravi shematski program u apstraktnom

Sortiranje Odabirom Elementa u listi po zadanom kriteriju q 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 q Odredi vodeću potenciju u tom razvoju za oba slučaja (povoljniji i nepovoljniji) ! q Rezultat pošalji na adresu: dandroic@phy. hr

“Podjeli pa vladaj” princip Osnovna karakteristika rekurzivnost Podjela problema Savladavanje pod problema; ponekad i

“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

Sortiranje umetanjem listi (Merge Sort a-d)

Sortiranje umetanjem listi (Merge Sort a-d)

Sortiranje umetanjem listi (Merge Sort e-i)

Sortiranje umetanjem listi (Merge Sort e-i)

Sortiranje umetanjem listi MERGE( A, p, q, r) 1) n 1 q - p

Sortiranje umetanjem listi MERGE( A, p, q, r) 1) n 1 q - p +1 2) n 2 r - q 3) napravi polja L[1, . . n 1+1], 4) 5) 6) 7) 8) 9) R[1, . . n 2+1] za i 1 do n 1 L[i] A[p+i-1] za j 1 do n 2 R[j] A[q+j] L [ n+1 ] µ R [ n+1 ] µ 10) i 1 11) j 1 12) za k p do r 13) ako je L[ i ] £ R[ j ] 14) tada A [ k ] L [ i ] 15) i i+1 16) inače A [ k ] R [ j ] 17) j j+1

Analiza (MERGE) algoritma sortiranja umetanjem listi q Odredi funkciju q(n) - vodeću potenciju broja

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