Kann mir jemand helfen, diese Swap-Methode herauszufinden, dass ein Teil eines größeren schnellen Sortierprogramm ist? Es soll ein Array und zwei ganze Zahlen nehmen und die durch die ganzen Zahlen angegebenen Indexpositionen vertauschen.Swap-Methode für quicksort in Java
private static <T extends Comparable<T>> int partition(T[] table, int first, int last) {
T pivot = table[first];
int up = first;
int down = last;
do {
while ((up < last) && (pivot.compareTo(table[up]) >= 0)) {
up++;
}
while (pivot.compareTo(table[down]) < 0) {
down--;
}
if (up < down) {
swap(table, up, down);
}
}
while (up < down);
swap(table, first, down);
return down;
}
Die Swap-Methode ist derzeit undefined und ich bin mir nicht sicher, wie es funktioniert. Ich habe versucht, die Methode zu schreiben:
void swap(T[] array, int a, int b) {
T temp = array[a];
array[a] = array[b];
array[b] = temp;
}
Allerdings bekomme ich den Fehler, dass T nicht zu einem Typ auflösen kann. Aber wenn ich versuche, den Typ in int zu ändern, funktioniert die Methode nicht dort, wo sie oben genannt wird.
Ich habe versucht, das so gut und meine Anrufe der Swap-Methode immer noch sagen, dass „die Methode swap (T [], int, int) für den Typen QuickSort nicht definiert ist“ Ich habe das Verfahren auf dem gleichen Niveau wie private static definiert habe> int Partition (T [] Tabelle, int erste, int last) –
Teej
Nevermind es tatsächlich funktioniert, stellt sich heraus, ich hatte gerade eine Weile nicht kompiliert lol. Dank viel – Teej