经典快排


import java.util.Arrays;

public class quickSort {

    public static void quickSort(int[] arr){
        quickSort(arr,0,arr.length-1);
    }
    public static void quickSort(int[] arr,int low,int high){
        if(low<high){
            int pos = partition(arr,low,high);
            quickSort(arr,low,pos-1);
            quickSort(arr,pos+1,high);
        }
    }
    public static int partition(int[] arr,int low,int high){
        int base = arr[low];
        while (low<high){
            while (low<high&&arr[high]>=base){
                high--;
            }
            arr[low] = arr[high];
            while (low<high&&arr[low]<=base){
                low++;
            }
            arr[high] = arr[low];
        }
        arr[low] = base;
        return low;
    }

    public static void main(String[] args) {
        int [] arr = {3,2,5,4,6,8,1,2,6,9,7};
        System.out.println(Arrays.toString(arr));
        quickSort(arr);
        System.out.println(Arrays.toString(arr));
    }

}

你可能感兴趣的:(排序)