用java写出快速排序代码
时间: 2024-11-14 09:14:55 浏览: 4
快速排序算法的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);
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[high]; // 最后一个元素作为基准
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
// 交换arr[i]和arr[j]
swap(arr, i, j);
}
}
// 将基准元素放到正确的位置
swap(arr, i + 1, high);
return i + 1;
}
private 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 = {9, 7, 5, 11, 12, 2, 14, 3, 10};
quickSort(arr, 0, arr.length - 1);
System.out.println("Sorted array: ");
printArray(arr);
}
private static void printArray(int[] arr) {
for (int value : arr) {
System.out.print(value + " ");
}
System.out.println();
}
}
```
这个代码首先定义了一个`quickSort`函数,它接受一个数组、低索引和高索引作为参数,然后进行递归排序。`partition`函数用于划分数组,并返回基准元素的新位置。`swap`函数负责交换数组中的两个元素。
在`main`方法中,我们创建了一个测试数组并调用`quickSort`对其进行排序,最后打印出排序后的结果。
阅读全文