任何人都可以幫助我找出這種交換方法,它是較大的快速排序程序的一部分嗎?它應該採用一個數組和兩個整數並交換整數指示的索引位置。在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;
}
交換方法目前未定義,我不知道如何讓它工作。我曾嘗試編寫該方法:
void swap(T[] array, int a, int b) {
T temp = array[a];
array[a] = array[b];
array[b] = temp;
}
但是我一直收到T無法解析爲類型的錯誤。但是,當我嘗試將類型更改爲int時,該方法在上面調用的位置不起作用。
我也試過,並且我的swap方法調用仍然說「方法swap(T [],int,int)未定義爲類型QuickSort」我將方法定義在與private static相同的級別上> int partition(T [] table,int first,int last) –
Teej
不知道它的工作原理,事實證明,我剛剛沒有編譯過一會兒哈哈。非常感謝 – Teej