public static void quickSort(int[] arr, int left, int right) {
if (left > right) return;
int i = left;
int j = right;
int pivot = arr[left];
while (i < j) {
// 先从右侧开始找
while (arr[j] >= pivot && i < j) {
j--;
}
while (arr[i] <= pivot && i < j) {
i++;
}
// arr[i]和arr[j]互换
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 退出循环时 i == j
// 退出循环时保证了i左侧的元素 <= pivot,i右侧 >= pivot
arr[left] = arr[i];
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
java 快速排序代码
最新推荐文章于 2024-07-17 10:35:12 发布
这篇博客详细介绍了快速排序算法的实现过程,包括如何选择枢轴元素,如何通过双指针进行分区操作,以及递归地对子数组进行排序。代码中展示了经典的左闭右开区间快速排序的Java实现,通过不断缩小排序区间直至完全排序,体现了快速排序的高效特性。
摘要由CSDN通过智能技术生成