3 回答

TA貢獻1828條經(jīng)驗 獲得超13個贊
您的交換功能不起作用,這就是為什么quick
您的陣列保持不變的原因。
這正好解決了您的問題:Java: Why does does this swap method not work??-- 這些是基本概念,理解它們是值得的。
無論如何,既然你正在處理一個數(shù)組,你可以這樣去做:
/** Swap array[i] and array[j] */
public static void swap(int[] array, int i, int j)
{
? ? int t = array[i];
? ? array[i] = array[j];
? ? array[j] = t;
}
注意:我沒有深入研究你的排序邏輯——一旦這個問題得到解決,你也許就能弄明白。

TA貢獻1869條經(jīng)驗 獲得超4個贊
調(diào)用 swap 時實際上并沒有交換數(shù)組元素。該方法所做的只是交換參數(shù)。
您可以將數(shù)組與索引一起傳遞到交換方法中,或者更實際地說,只需將交換代碼復制到您的部分方法中

TA貢獻1777條經(jīng)驗 獲得超10個贊
我不知道您是否正在學習 QuickSort,但是如果您想要一種快速對數(shù)字列表進行排序的方法,我建議您使用 ArrayList,它基本上是這樣聲明的:
ArrayList<Integer> yourArrayList = new ArrayList<Integer>();
在菱形運算符 (<>) 中插入數(shù)據(jù)類型,在本例中為Integer,但您也可以插入Double以獲得小數(shù)結果。
聲明后,您必須添加您的號碼:
yourArrayList.add(1)
yourArrayList.add(3);
ETC...
完成后使用Collections.sort(yourArrayList);
我希望我很清楚,這是使用它的代碼:
ArrayList<Integer> yourArrayList = new ArrayList<Integer>();
yourArrayList.add(10);
yourArrayList.add(3);
yourArrayList.add(7);
yourArrayList.add(-3);
Collections.sort(yourArrayList);
System.out.println(yourArrayList);
添加回答
舉報