Gyakorlati alapok
Minimumkiválasztásos rendezés
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.
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