Java快速排序

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java快速排序脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java快速排序

/**
 * 快速排序
 *
 * @author yl
 */
public class Quicksort {

    public static void main(String[] args) {
        int[] array = {7, 6, 9, 3, 1, 5, 2, 4};
        System.out.PRintln(Arrays.toString(quickSort(array,0,array.length-1)));
    }

    /**
     * 快速排序算法
     * 参考:https://blog.csdn.net/morewindows/article/details/6684558、https://bLOG.csdn.net/shujuelin/article/details/82423852
     * @param array
     * @param left
     * @param right
     * @return
     */
    public static int[] quickSort(int[] array,int left,int right) {
        if (left>right){
            return array;
        }

        // 将第一个数作为基准数
        int baseNum = array[left];
        // 左边数的下标
        int leftIndex=left;
        // 右边数的下标
        int rightIndex=right;

        while (leftIndex < rightIndex) {
            // 从右边开始找第一个小于基准数的数的下标
            while (leftIndex < rightIndex && array[rightIndex] >= baseNum) {
                rightIndex--;
            }
            // 从左边开始找第一个大于基准数的数的下标
            while (leftIndex < rightIndex &amp;& array[leftIndex] <= baseNum) {
                leftIndex++;
            }
            // 将找到的数左右互换
            if (leftIndex<rightIndex){
                int temp=array[leftIndex];
                array[leftIndex]=array[rightIndex];
                array[rightIndex]=temp;
            }
        }

        // 当左边下标等于右边下标时,将基准数和该下标对应数互换
        array[left]=array[leftIndex];
        array[leftIndex]=baseNum;

        // 递归调用
        quickSort(array,left,rightIndex-1);
        quickSort(array,rightIndex+1,right);

        return array;
    }

}

脚本宝典总结

以上是脚本宝典为你收集整理的Java快速排序全部内容,希望文章能够帮你解决Java快速排序所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。