使用java写一个快速排序
时间: 2023-09-10 07:06:15 浏览: 95
以下是使用Java编写的快速排序算法:
```
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
}
private static int partition(int[] arr, int left, int right) {
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
swap(arr, 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;
}
```
在这里,我们首先定义了一个“quickSort”方法,它接受一个整数数组、左侧索引和右侧索引。如果左侧索引小于右侧索引,则继续递归。我们通过调用“partition”方法获取枢轴值(即最右侧元素),然后将数组分为两部分,其中左侧部分包含小于枢轴值的元素,右侧部分包含大于枢轴值的元素。我们然后递归地调用“quickSort”方法,对每个部分进行排序。
“partition”方法执行实际的分区。我们从左侧开始迭代数组,如果当前元素小于枢轴值,则将其交换到左侧部分。最后,我们将枢轴值与分区索引右侧的第一个元素交换,并返回分区索引。
最后,我们定义了一个“swap”方法,用于交换两个数组元素。
阅读全文