Hallo an Alle,
ich muss das MergeSort Verfahren implementieren, allerdings will das nicht wirklich klappen. Vielleicht kann mir jemand weiter helfen? Die Methode mergeSort wurde vom Professor schon vorgegeben.
Das hier habe ich bisher:
ich muss das MergeSort Verfahren implementieren, allerdings will das nicht wirklich klappen. Vielleicht kann mir jemand weiter helfen? Die Methode mergeSort wurde vom Professor schon vorgegeben.
Das hier habe ich bisher:
Java:
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] array = {149, 45, 76, 0, 93, 15, 39, -5};
mergeSort(array, 0, array.length-1);
System.out.println("Sortiertes Array: " + Arrays.toString(array));
}
// Sortieren des Teil-Arrays a[l]..a[r]
private static void mergeSort(int[] a, int l, int r) {
if (r <= l) { //rechts kleiner links
return; // nur 1 Element => fertig.
}
int m = (l + r) / 2;
mergeSort(a, l, m); // linke Hälfte sortieren
mergeSort(a, m + 1, r); // rechte Hälfte sortieren
merge(a, l, m, r); // beide Hälften zusammenmischen
}
// Mischen der Teil-Arrays l..p und p+1..r
private static void merge(int[] a, int l, int p, int r) {
int[] sortedArray = new int[a.length];
for (int k = l; k < r; k++) {
for (int i = 0; i < p; i++) {
for (int j = p + 1; j < r; j++) {
if (a[j] <= a[i]) {
sortedArray[k] = a[j];
} else {
sortedArray[k] = a[i];
}
}
}
}
}
}