java語言遞歸實現快速排序

基本思想

通過一趟排序將要排序的數據分割成獨立的兩個部分,其中一部分的所有數據都比另一部分的所有數據都小。

public class QuickSort {
    //分割函數
    public static int partitionByPivotValue(int[] arr,int left,int right){
        int pivotValue=arr[left];
        while(left<right){
            while(left<right && arr[right]>= pivotValue){
                --right;
            }
            arr[left]=arr[right];

            while(left<right && arr[left]<= pivotValue){
                ++left;
            }
            arr[right]=arr[left];

            arr[left]=pivotValue;
        }
        return left;
    }
    public static void quickSort(int[] arr,int left,int right) {
        int pivot;
        if(left<right){
            pivot=partitionByPivotValue(arr, left, right);
            quickSort(arr, left, pivot-1);
            quickSort(arr, pivot+1, right);
        }
    }

    public static void main(String[] args) {
        int []arr={ 38, 65, 97, 76, 13, 27,49 };
        quickSort(arr, 0, arr.length-1);
        for(int i=0;i<arr.length-1;i++){
            System.out.print(arr[i]+"  ");
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章