Javakurs/Übungsaufgaben/SelectionSort/Musterlösung
< Javakurs | Übungsaufgaben | SelectionSort
Version vom 7. März 2012, 15:32 Uhr von 130.149.17.62 (Diskussion) (Die Seite wurde neu angelegt: „<pre> class Selectionsort{ public static void main(String[] args){ // Erzeugen uns 100 Zufallszahlen, die wir sortieren wollen int[] arr…“)
class Selectionsort{
public static void main(String[] args){
// Erzeugen uns 100 Zufallszahlen, die wir sortieren wollen
int[] arr = new int[100];
for(int i=0 ; i<arr.length ; i++){
arr[i] = (int) (Math.random() * 1000);
}
// Das Array wird sortiert
sort(arr);
System.out.println(isSorted(arr));
}
public static void sort(int[] array){
int n = array.length;
// Nehme das erste Element, tausche es mit dem Minimum des Restarrays
// Fahre mit den nächsten fort...
for(int i = 0; i < n; i++){
int min = findMinimum(array , i, n-1);
swap(array, i, min);
}
}
// tauscht zwei Werte in einem Array
public static void swap(int[] array, int position1, int position2) {
// Ueberpruefe ob position1 und position 2 im array vorhanden sind.
if(array.length > position1 && array.length > position2){
// Elemente tauschen
int temp;
temp = array[position1] ;
array[position1] = array[position2];
array[position2] = temp;
}
}
// ermittelt die Position des kleinesten Wertes in einem Teilarray.
public static int findMinimum(int[] array, int startIndex, int endIndex) {
int ergebnis = startIndex;
// Schleife geht array innerhalb der Indexgranzen durch
for(int i=startIndex+1 ; i<=endIndex ; i++){
// Wenn ein Wert kleiner ist wird der Index in ergebnis gespeichert
if( array[ergebnis]>array[i] ){
ergebnis = i;
}
}
return ergebnis;
}
// testet, ob das Array sortiert ist oder nicht
public static boolean isSorted(int[] array) {
for(int i=0; i<array.length-1 ; i++){
// Wenn zwei nebenweinander liegende Werte falsch sortiert sind, dann wird false zurueckgegeben
if( array[i] > array[i+1]){
return false;
}
}
return true;
}
}