在阅读快速排序后,我已经编写了下面的Java代码。运行代码时没有错误,但快速排序不对数组进行排序。它只返回原始未排序的数组。我很感激任何线索。
public class quickSort {
public void quickSort(int array[], int low, int high){
if(low<high){
int pivot=partition(array, low, high);
quickSort(array, low, pivot-1);
quickSort(array, pivot+1, high);
}
}
private int partition(int array[], int low, int high){
int pivot=array[high];
int i=low-1;
for (int j = low; j < high; j++) {
if(array[j]<pivot){
i++;
swap(array[i], array[j]);
}
}
swap(array[i+1], array[high]);
return i+1;
}
private void swap(int a , int b){
int temp=a;
a=b;
b=temp;
}
public static void main(String[] args){
int a[]={4,6,3,7,9,0};
quickSort q=new quickSort();
q.quickSort(a, 0, a.length-1);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}