Selection Sort in Java
In diesem Artikel dreht es sich um die Implementierung des Selection Sort Algorithmus in Java.
Um eines gleich von vornherein zu klären. Selection Sort eignet sich nur für kurze bzw. kleine Datenreihen, denn er ist sehr aufwändig, da er immer durchläuft egal ob die Menge sortiert oder nicht sortiert ist.
Doch wie funktioniert dieser Algorithmus eigentlich?
Stellen Sie sich eine Reihe an Zahlen vor.
Z.B.: 2,7,1,4,7,0,8,14,9,3,42,31,6,5,1,33 diese Zahlen sind in einem Array gespeichert.
Nun stellen Sie sich zwei Zeiger vor. Der eine zeigt auf den Wert am äusseren linken Ende, also die 2! Der andere Zeiger läuft durch die restlichen Werte, beginnend ab der 7. Was passiert nun?
Der Algorithmus stellt innerhalb der übrigen Werte die kleinste vorhandene Zahl fest und rückt diese an die erste Stelle, danach steht der linke Zeiger auf der 2. Zahl und der Vorgang beginnt von neuem bis alle Werte sortiert sind. Auch, wenn alle Werte sortiert sind läuft der Algorithmus noch ein letztes Mal durch die Reihe um festzustellen ob die kleinste Zahl bereits ganz vorne steht und beendet sich dann.
Wie würde die Implementierung in Java aussehen und was benötigen wir dafür.
Zuerst brauchen wir mal ein Array mit Werten, dass heisst der Methode muss ein Array mit Zahlenwerten übergeben werden(Da wir Objekt Arrays hier noch nicht behandelt haben und der Einfachheit halber nehmen wir Zahlen Arrays).
Java Programm:
public class SelectionSort {
public static void sort(int[]a){
int i, j, pos, min;
for(i=0;i<a.length-1;i++){
pos=i;
min=a[i];
for(j=i+1;j<a.length;j++){
if(a[j]<min){
pos=j;
min=a[j];
}
}
a[pos]=a[i];
a[i]=min;
}
for(int z=0;z<a.length;z++){
System.out.println(a[z]);
}
}
public static void main(String[]args){
int[]a={5,3,2,1,6,99,105,33,44,55,66,102,12};
sort(a);
}
}
Wenn Sie diesen Algorithmus in Java ausführen, dann wird das in der Main Methode initialisierte Array a sortiert und wieder ausgegeben.
Ich empfehle Ihnen einfach mal ein wenig mit dem Algorithmus herum zu experimentieren und bei etwaigen Fragen einfach das Kontakformular zu verwenden.
Viel Spaß mit dem Selection Sort.

