写一段用Java重述的快速排序
时间: 2023-06-03 21:04:02 浏览: 86
用java实现快速排序
好的,请问您需要对数据类型或数据范围进行限制吗?
需限制:如果数据类型为整数数组,数据范围不超过int类型的取值范围。
如果不需要限制,假设需要排序的数组为arr,快速排序的Java代码如下所示:
```java
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int p = partition(arr, left, right);
quickSort(arr, left, p - 1);
quickSort(arr, p + 1, right);
}
}
public 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;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
```
其中,quickSort方法是快速排序的入口方法;partition方法用于返回枢轴的索引;swap方法用于交换数组元素的位置。
快速排序的基本思想是选择一个枢轴,将数组中小于枢轴的元素移到枢轴的左侧,将大于枢轴的元素移到枢轴的右侧,然后递归地对枢轴左右两侧的子数组进行无序排序,最终形成有序的数组。
以上是我重述的快速排序的Java代码,请问是否满足您的需求?
阅读全文