A buborékos rendezés

logo

Adott egy n elemű M sorozat. Rendezzük növekvő sorrendbe az elemeit!

A megvalósítás gondolatmenete:

Kettesével vizsgáljuk meg a sorozat elemeit, s ha a szomszédos elemek a kívánt rendezettségnek nem felelnek meg, akkor felcseréljük azokat, majd továbblépve a következő elempárt vizsgáljuk meg. Addig pásztázzuk ismét a sorozatot, amíg eljutunk a rendezett állapotig, amikor már nincs szükség több cserére. (Tulajdonképpen újra és újra „végigbuborékoltatjuk” a sorozatot, ahogyan az algoritmus elnevezése is mutatja.) Logikus, hogy ez a rendezés akkor hatékony, ha „nagyjából” rendezett a sorozat, és csak egy-két elem nincs a helyén.

Az algoritmus mondatszerű leírással:

Eljárás buborek_elv:

Ciklus i = 1-től (n-1)-ig

Ciklus j = 1-től (N-i)-ig

Ha M[j] > M[j+1] Akkor

T = M[j]

M[j] = M[j+1]

M[j+1] = T

Elágazás vége

Ciklus vége

Ciklus vége

Eljárás vége

Feladat:

Olvassuk be a csoportban tanuló diákok nevét! Írjuk ki ezeket ABC-szerint rendezetten!

Program abece:

Ciklus i = 1-től N-ig

Be: nev

nevsor(i) = nev

Ciklus vége

Ciklus i = 2-től N-ig

Ciklus j = N-től i-igi lépésköz -1

Ha Nevsor(j - 1) > Nevsor(j) Akkor

Munka = Nevsor(j - 1)

Nevsor(j - 1) = Nevsor(j)

Nevsor(j) = Munka

Elágazás vége

Ciklus vége

Ciklus vége

Ki: Nevsor

Program vége.

Házi feladat:

Olvassunk be több számot ciklusban..