1. 程式人生 > 其它 >快速排序 #java實現

快速排序 #java實現

快速排序:

    private static void quickSort(int[] arr, int low, int high) {

        if (low >= high) {
            return;
        }
        int central = arr[low];
        int left = low;
        int right = high;
        int pos = 1;
        while (left < right) {
            if (pos == -1) {
                //到左邊操作
                if (arr[left] > central) {
                    arr[right] = arr[left];
                    pos = 1;
                    right--;
                } else {
                    while (arr[left] <= central && left < right) {
left++; } } } else { //到右邊操作 if (arr[right] < central) { arr[left] = arr[right]; pos = -1; left++; } else { while (arr[right] >= central && left < right) {
right--; } } } } arr[left] = central; //將pivot中心軸(也就是一個元素),放在left=right相等時的這個索引上 //將左右子序列提取出來,單獨作為陣列,重複上面的操作 quickSort(arr, low, left - 1); quickSort(arr, right + 1, high); }