Arbeitsblätter und Lösungen Hr. Kimmig
public class Methoden {
public static void main(String[] args) {
int[] xyz = zufall(100000,30);
long beginn = System.currentTimeMillis();
int[] sortiert = inPlace(xyz);
long end = System.currentTimeMillis();
long dauer = end-beginn;
System.out.println(dauer+"ms");
}
// Methode, um Array anzulegen und mit zufälligen Zahlen zu füllen
public static int[] zufall(int laenge, int max) {
int[] a = new int[laenge];
for(int i=0;i<laenge;i++) {
a[i] = (int)(Math.random()*max);
}
return a;
}
// Methode, um Array formatiert auszugeben
public static void ausgabe(int[] array) {
for(int i=0;i<array.length;i++) {
System.out.print(array[i]+", ");
}
System.out.println();
}
// Methode, um Array sortiert auszugeben
public static void sortierteAusgabe(int[] array) {
for(int i=0 ; i<array.length ; i++) {
int m = min(array, 0);
System.out.print(array[m]+", ");
array[m] = Integer.MAX_VALUE;
}
System.out.println();
}
// Out-of-Place-Sortierung SelectionSort
public static int[] sortiere(int[] array) {
int[] sortiert = new int[array.length];
for(int i=0 ; i<array.length ; i++) {
int m = min(array, 0);
sortiert[i] = array[m];
array[m] = Integer.MAX_VALUE;
}
return sortiert;
}
// Minimumsuche
public static int min(int[] array, int start) {
int m = start;
for(int i=start ; i<array.length ; i++) {
if(array[m]>array[i]) {
m = i;
}
}
return m;
}
// In-Place-Sortierung SelectionSort
public static int[] inPlace(int[] array) {
for(int i=0 ; i<array.length ; i++) {
int m = min(array, i);
// Vertausche zwei Zahlen
int tmp = array[i];
array[i] = array[m];
array[m] = tmp;
}
return array;
}
}