1. 程式人生 > 實用技巧 >Nginx實現灰度釋出

Nginx實現灰度釋出

快速排序

快速排序(Quicksort)是對氣泡排序的一種改進。基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列

選擇最後一個數為基數,以基數為界將資料分為兩部分,基數左側小於基數,基數右側大於等於基數

   public static void quickSort(int left, int right, int[] arr) {
        if (left>right) return;
        int leftIndex = left;
        int rightIndex = right;
        int boundIndex = right;
        int temp = 0;
        while (leftIndex < rightIndex) {
            /**
             * 從最左側開始尋找大於基數的資料
             */
            while (leftIndex < rightIndex && arr[leftIndex] <= arr[boundIndex]) {
                leftIndex++;
                
            }
            /**
             * 從最右側開始尋找小於基數的資料
             */
            while (rightIndex > leftIndex && arr[rightIndex] >= arr[boundIndex]) {
                rightIndex--;
            }
            /**
             * 找到後進行交換
             */
            temp = arr[leftIndex];
            arr[leftIndex] = arr[rightIndex];
            arr[rightIndex] = temp;
        }
        /**
         * 最後將基數放如兩部分之間
         */
        if (leftIndex == rightIndex) {
            temp = arr[boundIndex];
            arr[boundIndex] = arr[rightIndex];
            arr[rightIndex] = temp;
        }
        quickSort(left, leftIndex - 1, arr);
        quickSort(rightIndex + 1, right, arr);



    }