Strukture podataka i algoritmi Drugo predavanje Sortiranje listi
- Slides: 17
Strukture podataka i algoritmi Drugo predavanje Sortiranje listi
Sortiranje
Sortiranje liste
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 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] ima samo jedan element
Postupak v. Invarijante algoritma vanjska petlja unutarnja petlja uspoređivanje posmak
Završetak zadatka v. Invarijante algoritma Uređena lista
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 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 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 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 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 e-i)
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 operacija u ovisnosti o broju elemenata u nesortiranoj listi odredi invarijante algoritma diskutiraj probleme q Rezultat pošalji na adresu: dandroic@phy. hr
- Strukture podataka i algoritmi
- Pagrindines veiksmažodžio formas
- Strukture i vrste podataka u pythonu
- Programski jezici i strukture podataka
- Sortiranje
- Sortiranje niza
- Hrvatska književnost od 1929 do 1952
- Pavao krce
- Baanska
- Prošnja za prepis na drugo srednjo šolo primer
- Prvo kirchhoffovo pravilo
- Ujedinjenje italije i nemacke
- Rezonantne strukture
- Tipovi organizacione strukture
- Nativna
- Ciklična struktura
- Opsti racio likvidnosti
- Disulfidni most