私はクイックソートアルゴリズムを実装しており、ピボットを中心に入力配列を分割しました。問題は、同じ入力配列を使って、配列の最初の部分と2番目の部分を再帰的にソートする方法(つまり範囲を指定する方法)が混乱していることです。以下 は、私も私のアルゴリズムの他のinefficenciesに修正されて感謝してください、私の実装クイックソートアルゴリズムと混同しました
class QuickSort {
int i;
int l = 0;
public void quicksort(int A[], int n) {
if (n == 1) {
return;
} else {
partition(A, 0, n);
//----Confused as from this point
quicksort(A, A[i]);
//Recursively sort both parts of the array
}
}
public int partition(int A[], int l, int r) {
int p = A[l];//Choose pivot
i = l + 1;
//Partition around A through P
for (int j = i; j < r; j++) {
if (A[j] < p) {
swap(A, i, j);
++i;
}
}
swap(A, l, i - 1);
return i;
}
public void swap(int A[], int i, int j) {
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
public void display(int A[]){
for (int i = 0; i < A.length; i ++){
System.out.print(A[i] + " ");
}
}
}
class QuickSortApp{
public static void main(String args[]){
QuickSort quick = new QuickSort();
int A[] = {6,2,7,8,4,3,5};
quick.quicksort(A, A.length);
quick.display(A);
}
}
です。ありがとう
お願いします。 – nnanna