快速排序

package eleven;

public class QuickSort {
    /**
     * 快速排序
     * 
     * @param num
     * @param left
     * @param right
     * @return
     */
    public static void printArray(int num[]) {
        for (int i = 0; i < num.length; i++) {
            System.out.print(num[i] + " ");
        }
        System.out.println();
    }

    public static int[] quickSort(int[] num, int left, int right) {
        if (left < right) {
            int key = num[left];
            int i = left;
            int j = right;
            while (i < j) {
                while (i < j && num[j] > key) {
                    j--;
                }
                num[i] = num[j];
                while (i < j && num[i] <= key) {
                    i++;
                }
                num[j] = num[i];
            }
            num[i] = key;
            printArray(num);

            quickSort(num, left, i - 1);
            quickSort(num, i + 1, right);
        }
        return num;
    }

    public static void main(String[] args) {
        int[] num = { 72, 6, 57, 88, 69, 56, 43, 67, 23, 87, 23, 12, 76, 88 };
        quickSort(num, 0, num.length - 1);

    }
}

算法输出为:

12 6 57 23 69 56 43 67 23 72 87 88 76 88
6 12 57 23 69 56 43 67 23 72 87 88 76 88
6 12 23 23 43 56 57 67 69 72 87 88 76 88
6 12 23 23 43 56 57 67 69 72 87 88 76 88
6 12 23 23 43 56 57 67 69 72 87 88 76 88
6 12 23 23 43 56 57 67 69 72 87 88 76 88
6 12 23 23 43 56 57 67 69 72 76 87 88 88
6 12 23 23 43 56 57 67 69 72 76 87 88 88

posted @ 2016-01-18 15:51  程序猿进化之路  阅读(31)  评论(0)    收藏  举报