atomant Beograd
Član broj: 47540 Poruke: 263 *.dynamic.isp.telekom.rs.
|
while ciklus ce se izvrsavati dok je radi postavljen na 1.
Cim se udje u while radi se postavi na nulu, i ako se ne izvrsi nijedna zamena mesta radi ce ostati na 0 i program ce se zavrsiti. Ako se pak izvrsi razmena mesta neka 2 broja radi ce se postaviti na 1 i to ce znaciti da je nesto obavljeno u tom koraku i vrsice se jos jedan korak (sve dotle dok se nesto radi, tj dok niz nije sortiran). Ovo while mu sluzi da kad jednom izvrti for petlju ponovo krene da vrti for jos jednom. I da, u pravu si, porede se 2 po 2 elementa. Pusti ga da radi u debageru pa ces videti kako radi. Razmeni 2 elementa, pa nastavi dalje kroz niz, ako je potrebno razmeni jos 2 elementa, pa nastavi dalje. Kada stigne do kraja ponovo ulazi u for petlju i ponovo razmenjuje mesta elementima, u parovima, sve dok ne dotera do kraja kada se prekida. Da ne bih suvoparno objasnjavao evo kako radi po koracima
Imas pocetni niz (ti si ga zadao):
niz=[1,7,3,5,9,11,8];
u prvom prolazu on radi sledece:
niz=[7,1,3,5,9,11,8];
niz=[7,3,1,5,9,11,8];
niz=[7,3,5,1,9,11,8];
niz=[7,3,5,9,1,11,8];
niz=[7,3,5,9,11,1,8];
niz=[7,3,5,9,11,8,1];
U sledecem prolazu ce da uradi sledece (po koracima)
niz=[7,3,5,9,11,8,1]; (ovde ne menja mesta prva 2 clana, jer je 7>3)
niz=[7,5,3,9,11,8,1];
niz=[7,5,9,3,11,8,1];
niz=[7,5,9,11,3,8,1];
niz=[7,5,9,11,8,3,1];
niz=[7,5,9,11,8,3,1]; (ovde opet ne radi nista)
I tako sve dok ne dotera do kraja
niz=[11,9,8,7,5,3,1];
Nadam se da si razumeo :)
If you can't explain it simply, you don't understand it well enough. A. Einstein
|