首页 > 编程语言 > 详细

快速排序-Java实现

时间:2021-08-14 11:55:36      阅读:25      评论:0      收藏:0      [点我收藏+]

看到快排就想到之前的导员了,记得当初期末代码题就是手写快排
逻辑就不写了,看看代码基本都懂了

public class QuickSort {
    public static void main(String[] args) {
        int[] arr = {8,1,2,4,5,6,7};

//        int[] arr = {4,6,2,3,1,5,7,8};
        /**
         * 1,6,2,3,1,5,7,8
         * 1,6,2,3,6,5,7,8
         * 1,3,2,3,6,5,7,8
         * 1,3,2,4,6,5,7,8
         */
        quickSort(arr,0,arr.length-1);
        for (int i:arr){
            System.out.print(i + "\t");
        }
    }

    private static void quickSort(int[] arr, int leftIndex, int rightIndex){
        if (leftIndex >= rightIndex){
            return;
        }
        int left = leftIndex;
        int right = rightIndex;

        int key = arr[left];

        while (left < right){
            while (right > left && arr[right] >= key){
                right--;
            }

            arr[left] = arr[right];

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

            arr[right] = arr[left];
        }
        arr[left] = key;
        quickSort(arr,leftIndex,left-1);
        quickSort(arr,right+1,rightIndex);
    }
}

快速排序-Java实现

原文:https://www.cnblogs.com/mengd/p/15139476.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!