Sortiranje niza metodom zamjene susjednih elemenata niza Zadatak

![Zadatak • osobe poredati po visini od najniže do najviše V[1] V[2] V[3] V[4] Zadatak • osobe poredati po visini od najniže do najviše V[1] V[2] V[3] V[4]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-2.jpg)


![2. korak • uspoređujemo drugu i treću osobu V[1] V[2] V[3] V[4] V[5] V[6] 2. korak • uspoređujemo drugu i treću osobu V[1] V[2] V[3] V[4] V[5] V[6]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-5.jpg)
![3. korak • uspoređujemo treću i četvrtu osobu V[1] V[2] V[3] V[4] V[5] V[6] 3. korak • uspoređujemo treću i četvrtu osobu V[1] V[2] V[3] V[4] V[5] V[6]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-6.jpg)
![4. korak • uspoređujemo četvrtu i petu osobu V[1] V[2] V[3] V[4] V[5] V[6] 4. korak • uspoređujemo četvrtu i petu osobu V[1] V[2] V[3] V[4] V[5] V[6]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-7.jpg)
![5. korak • uspoređujemo petu i šestu osobu V[1] V[2] V[3] V[4] V[5] V[6] 5. korak • uspoređujemo petu i šestu osobu V[1] V[2] V[3] V[4] V[5] V[6]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-8.jpg)
![Rezultat V[1] V[2] V[3] V[4] V[5] V[6] • na posljednjem je mjestu najviša osoba Rezultat V[1] V[2] V[3] V[4] V[5] V[6] • na posljednjem je mjestu najviša osoba](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-9.jpg)
![Kod n: =6; for rb: =1 to 5 do begin if v[rb]>v[rb+1] then begin Kod n: =6; for rb: =1 to 5 do begin if v[rb]>v[rb+1] then begin](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-10.jpg)
![Drugo ponavljanje • postupak ponavljamo na rasponu od prve do pete osobe V[1] V[2] Drugo ponavljanje • postupak ponavljamo na rasponu od prve do pete osobe V[1] V[2]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-11.jpg)
![Kod n: =6; for rb: =1 to 4 do begin if v[rb]>v[rb+1] then begin Kod n: =6; for rb: =1 to 4 do begin if v[rb]>v[rb+1] then begin](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-12.jpg)
![Treće ponavljanje • postupak ponavljamo na rasponu od prve do četvrte osobe V[1] V[2] Treće ponavljanje • postupak ponavljamo na rasponu od prve do četvrte osobe V[1] V[2]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-13.jpg)
![Kod n: =6; for rb: =1 to 3 do begin if v[rb]>v[rb+1] then begin Kod n: =6; for rb: =1 to 3 do begin if v[rb]>v[rb+1] then begin](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-14.jpg)
![Četvrto ponavljanje • postupak ponavljamo na rasponu od prve do treće osobe V[1] V[2] Četvrto ponavljanje • postupak ponavljamo na rasponu od prve do treće osobe V[1] V[2]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-15.jpg)
![Kod n: =6; for rb: =1 to 2 do begin if v[rb]>v[rb+1] then begin Kod n: =6; for rb: =1 to 2 do begin if v[rb]>v[rb+1] then begin](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-16.jpg)
![Peto ponavljanje • uspoređujemo prvu i drugu osobu V[1] V[2] V[3] V[4] V[5] V[6] Peto ponavljanje • uspoređujemo prvu i drugu osobu V[1] V[2] V[3] V[4] V[5] V[6]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-17.jpg)
![Kod n: =6; for rb: =1 to 1 do begin if v[rb]>v[rb+1] then begin Kod n: =6; for rb: =1 to 1 do begin if v[rb]>v[rb+1] then begin](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-18.jpg)
![Rezultat • osobe su poredane po veličini V[1] V[2] V[3] V[4] V[5] V[6] Rezultat • osobe su poredane po veličini V[1] V[2] V[3] V[4] V[5] V[6]](https://slidetodoc.com/presentation_image_h/1a0f4438c4953074df60f9687f92e532/image-19.jpg)





- Slides: 24
Sortiranje niza - metodom zamjene susjednih elemenata niza
Zadatak • osobe poredati po visini od najniže do najviše V[1] V[2] V[3] V[4] V[5] V[6]
O čemu ovisi algoritam? • računalo može u jednom koraku uspoređivati samo dva broja • uspoređujemo po dva susjedna elementa u nizu • zamjenjujemo im mjesta ako nisu u dobrom poretku
Prvo ponavljanje - 1. korak • uspoređujemo prvu i drugu osobu • nisu u dobrom poretku pa im zamjenjujemo mjesta V[1] V[2] V[3] V[4] V[5] V[6]
2. korak • uspoređujemo drugu i treću osobu V[1] V[2] V[3] V[4] V[5] V[6]
3. korak • uspoređujemo treću i četvrtu osobu V[1] V[2] V[3] V[4] V[5] V[6]
4. korak • uspoređujemo četvrtu i petu osobu V[1] V[2] V[3] V[4] V[5] V[6]
5. korak • uspoređujemo petu i šestu osobu V[1] V[2] V[3] V[4] V[5] V[6]
Rezultat V[1] V[2] V[3] V[4] V[5] V[6] • na posljednjem je mjestu najviša osoba
Kod n: =6; for rb: =1 to 5 do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; end;
Drugo ponavljanje • postupak ponavljamo na rasponu od prve do pete osobe V[1] V[2] V[3] V[4] V[5] V[6]
Kod n: =6; for rb: =1 to 4 do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; end;
Treće ponavljanje • postupak ponavljamo na rasponu od prve do četvrte osobe V[1] V[2] V[3] V[4] V[5] V[6]
Kod n: =6; for rb: =1 to 3 do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; end;
Četvrto ponavljanje • postupak ponavljamo na rasponu od prve do treće osobe V[1] V[2] V[3] V[4] V[5] V[6]
Kod n: =6; for rb: =1 to 2 do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; end;
Peto ponavljanje • uspoređujemo prvu i drugu osobu V[1] V[2] V[3] V[4] V[5] V[6]
Kod n: =6; for rb: =1 to 1 do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; end;
Rezultat • osobe su poredane po veličini V[1] V[2] V[3] V[4] V[5] V[6]
KOd • očito je da se isti postupak ponavlja n-1 puta • možemo uvesti vanjsku petlju
Kod for br_pon: =1 to n-1 do begin for rb: =1 to n-br_pon do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; end;
Možemo li poboljšati algoritam? • u našem primjeru nakon trećeg ponavljanja niz je bio uređen • očito je da vanjska petlja ne treba biti petlja s unaprijed zadanim brojem ponavljanja već treba biti petlja s uvjetom • uvodimo logičku varijablu koja prati uređenost parova
Kod br_pon: =1; repeat sortirano: =true; for rb: =1 to n-br_pon do begin if v[rb]>v[rb+1] then begin t: =v[rb]; v[rb]: =v[rb+1]; v[rb+1]: =t; sortirano: =false; end; br_pon: =br_pon+1; until sortirano;
Zadatak • Imena učenika u razredu treba učitati u memoriju i sortirati po abecedi.