我試圖在java中實現幾種不同類型的quicksort,但我的實現似乎沒有任何工作。我已經瀏覽了整個互聯網,我的代碼看起來與我找到的所有代碼非常相似,所以我不知道什麼是錯的。我的代碼如下:(注意,這不是完整的,但我認爲如果我發現一個快速排序有什麼問題,其他版本也可以)編輯:我遇到的問題是數組不能排序正確。我運行一個名爲isSorted的簡單方法來告訴我數組是否正確排序。我的執行快速排序Quicksort問題(java)
public static void quickSort(int[] A) {
flag=0;
quickSortHelper(A, 0, A.length-1);
}
public static void quickSortHelper(int [] A, int low, int high){
if(low<high){
if(flag==0){
int q=DPartition(A, low,high,A[high]);
quickSortHelper(A,low,q-1);
quickSortHelper(A,q+1,high);
}
public static int DPartition(int [] A, int low, int high,int pivot){
int p=pivot;
int i=low;
int j=high-1;
while (i<=j){
while(i<=j && A[i]<=p){
i=i+1;
}
while(j>=i && A[j]>=p){
j=j-1;
}
if (i<j){
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
int temp = A[i];
A[i] = A[p];
A[p] = temp;
return i;
}
您的代碼似乎有不平衡的括號。它甚至爲你編譯? –
你面臨的問題是什麼? –
我知道有幾個失蹤的大括號。我很抱歉。這些在代碼後面的某個地方。該代碼不會編譯和運行,但由於數組排序不正確,因此存在一些邏輯錯誤。我在想它的邏輯錯誤。但是我對quciksort並沒有深刻的理解,我也不知道邏輯錯誤所在的位置 – user979616