Hallo, ich versuche gerade MergeSort gemäß Pseudocode für generische Typen zu implementieren. Ich habe dabei Probleme mit der Merge-Methode.
Wie löse ich dabei den Fehler mit der compareTo Methode?
Wie bekomme ich in der letzten Zeile diese Zuweisung hin. Ich habe es mal in Array Notation gelassen.
Java:
private static <T extends Comparable<? super T>> void merge(List<T> a, int p, int mid, int q) {
Object[] tmp = new Object[q-p+1];
int i = p;
int j = mid+1;
int k = 0;
while (i <= mid && j <= q) {
if (a.get(i).compareTo(a.get(j))<=0) {
tmp[k] = a.get(i);
i++;
}
else {
tmp[k] = a.get(j);
j++;
k++;
}
if (i <= mid && j > q) {
while (i <= mid) {
tmp[k++] = a.get(i);
i++;
}
}
else {
while (j <= q) {
tmp[k++] = a.get(j);
j++;
}
}
for (k = 0; k < tmp.length; k++) {
a[k+p] = (T)(tmp[k]);
}
}
}
Wie löse ich dabei den Fehler mit der compareTo Methode?
Wie bekomme ich in der letzten Zeile diese Zuweisung hin. Ich habe es mal in Array Notation gelassen.