java快速学习排序---快排算法

一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。

1.快速排序的基本思想:

1). 先从数列中取出一个数作为基准数。
2). 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3). 再对左右区间重复第二步,直到各区间只有一个数。

2.快速排序的图示:

图片来源自网络

3.快速排序的算法

public class QuickSort {
    public static void main(String[] args) {
        int [] a = {1,6,8,7,3,5,16,4,8,36,13,44};
        QKSourt(a,0,a.length-1);
        for (int i:a) {
            System.out.print(i + " ");
        }
    }
    private static void QKSourt(int[] a, int start, int end) {
        if (a.length < 0){
            return ;
        }
        if (start >= end){
            return ;
        }
        int left = start;
        int right = end;
        int temp = a[left];
        while (left < right){
            while (left < right && a[right] >= temp){
                right -- ;
            }
            a[left] = a[right];
            while (left < right && a[left] <= temp){
                left ++ ;
            }
            a[right] = a[left];
        }
        a[left] = temp;
        System.out.println(Arrays.toString(a));
        QKSourt(a, start, left -1);
        QKSourt(a,left+1,end);
    }
}

你可能感兴趣的:(java快速学习排序---快排算法)