社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
public static void quickSort(int[] array, int indexStart, int indexEnd) {
int pivotIndex = (indexStart + indexEnd) / 2;
// swap
swap(array, pivotIndex, indexEnd);
int k = partition(array, indexStart - 1, indexEnd, array[indexEnd]);
swap(array, k, indexEnd);
if ((k - indexStart) > 1)
quickSort(array, indexStart, k - 1);
if ((indexEnd - k) > 1)
quickSort(array, k + 1, indexEnd);
}
private static int partition(int[] array, int left, int right, int pivot) {
do {
while (array[++left] < pivot)
;
while ((right != 0) && array[--right] > pivot)
;
swap(array, left, right);
} while (left < right);
swap(array, left, right);
return left;
}
public static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!