A minimumkiválasztásos rendezés

logo

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

A megvalósítás gondolatmenete:

Ennek az algoritmusnak a következőképpen foglalható össze a lényege: kezdetben a teljes sorozatban megkeressük a legkisebb elemet (azaz a minimumot), és azt a legelső helyen álló elemmel kicseréljük. A következő lépésben már csak az első elem elhagyásával kapott intervallumot vizsgáljuk, mégpedig úgy, hogy megnöveljük a sorozat elejét jelölő indexet, és a megtalált második legkisebb elemmel kicseréljük a másodikat. Ezt az eljárást folytatjuk, egészen addig, míg elfogynak a rendezendő elemek, vagyis a sorozat végére érünk. (Hogy ne legyenek felesleges cserék, két segédváltozót vezetünk be: a mini tartalmazza az adott intervallumbeli legkisebb számot, a sorszám pedig annak helyét a vektorban.)

Algoritmus mondatszerű leírással:

Ejárás minimumkivalasztas_tetele:

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

sorszam = i

mini = T[i]

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

Ha mini > T[ j ] akkor

mini = T[j]

sorszam = j

Elágazás vége

Ciklus vége

T[sorszam] = T[i]

T[i] = mini

Ciklus vége

Eljárás vége.

Feladat:

Olvassuk be a csoportban tanuló diákok nevét! Írjuk ki ezeket ABC-szerint rendezetten! (Vagyis ugyanaz a feladat, mint az előzőleg, de a megoldás nyilvánvalóan más.)

Házi feladat:

Olvassunk be több számot ciklusban.. Irjuk ki csökkenő, majd növekvő sorrendben a számokat! (Tehát a feladat itt is majdnem ugyanaz, csak a sorrendiséget változtattuk meg.)