Gyakorlati alapok

Minimumkiválasztásos rendezés

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Az előző, Elemi programozási tételek egy 10 elemű tömbön című fejezetben ismertetett Egyszerű cserés rendezés nevű algoritmus egyértelmű hibája a sok felesleges csere. A cserék számát oly módon lehetne csökkenteni, hogy a belső ciklusban (ráadásul egyre szűkülő tartományban) mindig megkeressük a minimumot. Az aktuális tömbpozíciót az int minimumHely változó fogja eltárolni, az aktuális minimumérték pedig a tomb[minimumHely] lesz. Ezzel lesz mindig felcserélve a tomb[i] egy int tarolo segédváltozó segítségével.

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random rnd = new Random();
        int []tomb = new int[10];
        for(int i = 0; i < tomb.length; i++){
            tomb[i] = rnd.nextInt(50) + 1;
            System.out.print(tomb[i] + " ");
        }
        System.out.println();

        for(int i = 0; i < tomb.length; i++){
        int minimumHely = i;
        for(int j = i+1; j < tomb.length; j++)
            if(tomb[j] < tomb[minimumHely]){
                minimumHely = j;
            }
        int tarolo = tomb[minimumHely];
        tomb[minimumHely] = tomb[i];
        tomb[i] = tarolo;
        }
        for(int i = 0; i < tomb.length; i++){
            System.out.print(tomb[i] + " ");
        }
    }
}

 

Végeredmény (például):
45 3 3 36 12 7 37 41 6 4
3 3 4 6 7 12 36 37 41 45