快速排序 #java實現
阿新 • • 發佈:2022-03-28
快速排序:
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); }