快速排序 #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); }