Hallo, kann mir jemand bei dieser Aufgabe helfen? Ein Code ist gegeben und man soll die Methode insertionSort als generische Methode, die einen Feld von Elementen eines Typ T bekommt, umschreiben... und komme grade nicht weiter
Der Code:
Wie weit ich grade bin.. (Weiß auch nicht ob das stimmt, was ich geschrieben habe
)
Der Code:
Code:
public static void main(String[] args){
int[] d = {10,-3,0,-9,5,2};
insertionSort(d);
}
static boolean isSorted(int[] a, int n) {
for (int j = 0; j < n; j++)
if (a[j] < a[j + 1])
return false;
return true;
}
static void insertionSort(int[] a) {
assert a != null && a.length > 0;
for (int j = 1; j < a.length; j++) {
assert isSorted(a, j - 1);
int k = a[j],
i = j - 1;
while (i >= 0 && a[i] < k) {
a[i + 1] = a[i];
i--;
}
a[i + 1] = k;
assert isSorted(a, j);
}
}
Wie weit ich grade bin.. (Weiß auch nicht ob das stimmt, was ich geschrieben habe
Code:
public static void main(String[] args) {
Integer[] d = { 10, -3, 0, -9, 5, 2 };
insertionSort(d);
}
/**
*
* "*" für die Zeile die ich geändert habe
*/
public static <T extends Comparable<T>> boolean isSorted(T[] a, int n) { // *
for (int j = 0; j < n; j++)
if (a[j].compareTo(a[j + 1]) < 0) // *
return false;
return true;
}
public static <T extends Comparable<T>> void insertionSort(T[] a) { //*
assert a != null && a.length > 0;
for (int j = 1; j < a.length; j++) {
assert isSorted(a, j - 1);
T k = a[j], i = (T) new Integer(j - 1); // *
//ab hier komme ich nicht weiter
while (i.compareTo((T) new Integer(0)) >= 0 && a[i].compareTo(k) < 0) { // i cannot convert from T to int
a[i + 1] = a[i];
i--;
}
a[i + 1] = k;
assert isSorted(a, j);
}
}