美文网首页
java快速学习排序---快排算法

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

作者: 消失的码农 | 来源:发表于2019-05-30 00:02 被阅读0次

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

    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快速学习排序---快排算法

          本文链接:https://www.haomeiwen.com/subject/sdjptctx.html