java用递归实现快速排序并注释每一行
时间: 2023-03-22 08:00:41 浏览: 132
好的,以下是使用递归实现快速排序的 Java 代码,并对每一行进行了注释解释:
```java
public class QuickSort {
public static void quickSort(int[] arr, int left, int right) {
if (left < right) { // 如果 left >= right,说明已经分完区了,直接返回
int pivotIndex = partition(arr, left, right); // 找到基准元素的下标
quickSort(arr, left, pivotIndex - 1); // 对基准元素左边的子数组进行快速排序
quickSort(arr, pivotIndex + 1, right); // 对基准元素右边的子数组进行快速排序
}
}
private static int partition(int[] arr, int left, int right) {
int pivot = arr[right]; // 将最后一个元素设为基准元素
int i = left - 1; // i 用于记录小于等于基准元素的最右边的下标
for (int j = left; j < right; j++) { // j 用于遍历数组
if (arr[j] <= pivot) { // 如果当前元素小于等于基准元素
i++; // i 向右移动一个位置
swap(arr, i, j); // 交换 i 和 j 下标对应的元素
}
}
swap(arr, i + 1, right); // 将基准元素放到正确的位置上
return i + 1; // 返回基准元素的下标
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
```
希望这可以帮助你理解递归快速排序的实现。
阅读全文