java算法,快排,快速排序的方法

java快速排序法

public class QuickSorted {
    static int[] nums = {6, 11, 2, 5, 9, 3, 4, 7, 10, 8};
    public static void main(String[] args) {
        //定义起始位置
        int left = 0;
        //定义右边开始的位置
        int right = nums.length - 1;
        quickSort(left, right);
        System.out.println(Arrays.toString(nums));
    }

    public static int[] quickSort(int left, int right) {
        /**
         * 给定递归出口,不然会StackOverflowError栈溢出
         * 当左边大于右边时递归结束
         */
        if (left > right) {
            return nums;
        }
        //定义一个临时变量
        int temp = 0;
        //定义基准数
        int stdNum = nums[left];
        //定义左边哨兵
        int i = left;
        //右边哨兵
        int j = right;
        //开始快排,结束条件是i不等于j
        while (i != j) {
            //因为定义的基准数是左边的,所以从右边开始
            while (nums[j] >= stdNum && i < j) {
                //6 1 2 5 9 3 4 7 10 8          4 j=6
                j--;
            }
            while (nums[i] <= stdNum && i

java算法,快排,快速排序的方法_第1张图片

你可能感兴趣的:(java算法,快排,快速排序的方法)