Javaでいくつかの異なるタイプのクイックソートを実装しようとしていますが、どの実装も機能していないようです。私はインターネット全体を見てきましたが、私のコードは私が見つけたすべてのコードと非常によく似ているので、何が悪いのかわかりません。私のコードは次のとおりです:(これは完全ではありませんが、1つのクイックソートで問題が見つかった場合は、他のバージョンも機能することに注意してください)編集:私が抱えている問題は、配列がソートされないことです正しく。isSortedという単純なメソッドを実行して、配列が正しくソートされているかどうかを確認します。他のソート方法(挿入ソート、ヒープソートなど)でも機能しますが、クイックソートの実装で使用するとfalseが報告されます
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;
}