快速排序

通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这前后的两部分分别采用这种方式进行排序,通过递归的运算最终达到整个序列有序。

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[]{5, 4, 5, 8, 7, 19, 15, 14, 0, 2, 6};
        quickSort(arr,0,arr.length - 1);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");

        }
    }
    static void quickSort(int[] arr,int start,int end){
        if (start >= end) return;
        int k = arr[start],low = start,high = end;
        while (low < high){
            while (low < high && k <= arr[high]) high--;
            arr[low] = arr[high];
            while (low < high && k >= arr[low]) low++;
            arr[high] = arr[low];
        }
        arr[high] = k;
        quickSort(arr,start,high - 1);
        quickSort(arr,high + 1,end);
    }

 }

posted @ 2022-05-05 16:25  学不会啊学不会  阅读(21)  评论(0)    收藏  举报