你們能解釋一下這個快速排序方法嗎?我正在嘗試將這些代碼實現到我的程序中,但作者沒有解釋它的功能,或者它是如何實現的。還請注意,我在高中,所以請儘量保持可以理解。有人可以解釋這種快速排序方法嗎?
我所知道的是它快速排列了一個二維數組。我也知道它使用遞歸來執行它的快速排序。不幸的是,這就是它。任何幫助,將不勝感激。
public double[][] quicksort(double[][] array, int key, int down, int top) {
double[][] a = new double[array.length][2];
System.arraycopy(array, 0, a, 0, a.length);
int i = down;
int j = top;
double x = a[(down + top)/2][key];
do {
while (a[i][key] < x) {
i++;
}
while (a[j][key] > x) {
j--;
}
if (i <= j) {
double[] temp = new double[a[i].length];
for (int y = 0; y < a[i].length; y++) {
temp[y] = a[i][y];
a[i][y] = a[j][y];
a[j][y] = temp[y];
}
i++;
j--;
}
} while (i <= j);
if (down < j) {
a = quicksort(a, key, down, j);
}
if (i < top) {
a = quicksort(a, key, i, top);
}
return a;
}
}
嚴重:[谷歌](https://www.google.com/search?q=quicksort) –
你知道如何快速排序,一般來說,作品? –
這是一個很好的機會來處理你的代碼調試技巧。看看它做了什麼,在不同的地方打印出一些變量,逐步完成並根據需要添加自己的評論。這樣做會讓你成爲一個更強大的程序員。 – Serdalis