使用Java代码编写快速排序,并加上相应注释
时间: 2023-07-19 13:25:25 浏览: 83
用java实现快速排序
好的,以下是使用Java代码编写快速排序的示例,已加上注释:
```java
public class QuickSort {
// 定义快速排序方法
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
// 分区并获取分区点
int pivot = partition(arr, low, high);
// 对分区点左边的区域递归进行快速排序
quickSort(arr, low, pivot - 1);
// 对分区点右边的区域递归进行快速排序
quickSort(arr, pivot + 1, high);
}
}
// 定义分区方法
public static int partition(int[] arr, int low, int high) {
// 选取数组最后一个元素作为分区点
int pivot = arr[high];
// 定义左指针和右指针
int left = low;
int right = high - 1;
// 进行分区操作,将小于分区点的元素放到左区间,大于等于分区点的元素放到右区间
while (left <= right) {
while (left <= right && arr[left] < pivot) {
left++;
}
while (left <= right && arr[right] >= pivot) {
right--;
}
if (left < right) {
swap(arr, left, right);
}
}
// 将分区点放到正确的位置上
swap(arr, left, high);
// 返回分区点的位置
return left;
}
// 定义交换数组元素的方法
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 测试用例
public static void main(String[] args) {
int[] arr = {3, 1, 5, 7, 2, 4, 9, 6, 8};
quickSort(arr, 0, arr.length - 1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
```
注释中详细说明了代码的每一个部分的作用和实现方法。
阅读全文