Nginx實現灰度釋出
阿新 • • 發佈:2020-07-17
快速排序
快速排序(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); }