设计模式

快速排序

2020-01-01  本文已影响0人  就这些吗
public class QuickSort {
    public static void quickSort(int array[], int start, int end) {
        //本质是递归,首先记住递归最重要的就是结束条件。
        if (start >= end) {
            return;
        }
        int left = start;
        int right = end;
        int temp = array[left];
        while (left < right) {
            while (left < right && array[right] >= temp) {
                right--;
            }
            while (left < right && array[left] <= temp) {
                left++;
            }
            if (left < right) {

                swap(array, left, right);
            }
        }
        swap(array, start, left);
        quickSort(array, 0, left - 1);
        quickSort(array, left + 1, end);

    }

    public static void swap(int array[], int i, int n) {
        int temp = array[i];
        array[i] = array[n];
        array[n] = temp;
    }

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

}
上一篇 下一篇

猜你喜欢

热点阅读