快速排序(QuickSort)是一种高效的排序算法,它使用了分治法的思想。下面是一个使用 Java
语言实现的快速排序算法:
```java
public class QuickSort {
public static void quickSort(int[] arr, int left, int right) {
if (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) {
// 选择最右边的元素作为基准值(pivot)
int pivot = arr[right];
int i = left; // i 为小于 pivot 的元素的索引
for (int j = left; j < right; j++) {
// 如果当前元素小于或等于 pivot
if (arr[j] <= pivot) {
// 交换 arr[i]和 arr[j]
swap(arr, i, j);
// 增加 i
i++;
}
}
// 将 pivot 元素放到最终的位置
swap(arr, i, right);
// 返回 pivot 的索引
return i;
}
// 交换数组中的两个元素
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];