快速排序不排序数组

时间:2017-08-15 05:24:12

标签: java sorting quicksort

在阅读快速排序后,我已经编写了下面的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]+" ");
    }
}
}

0 个答案:

没有答案