java写一个快速排序
时间: 2023-07-05 18:36:47 浏览: 42
好的,以下是 Java 实现快速排序的代码:
```java
public static void quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left]; // 以最左边的数作为基准值
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) { // 从右往左找第一个小于基准值的数
j--;
}
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] < pivot) { // 从左往右找第一个大于等于基准值的数
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = pivot; // 把基准值放到正确的位置上
quickSort(arr, left, i - 1); // 递归处理左边的子数组
quickSort(arr, i + 1, right); // 递归处理右边的子数组
}
```
这个函数接受一个整型数组、左边界和右边界作为输入,返回一个排序后的数组。在函数内部,使用了递归的方式来实现快速排序的过程。首先以最左边的数为基准值,然后从右往左找到第一个小于基准值的数,从左往右找到第一个大于等于基准值的数,然后把它们交换位置。重复这个过程,直到左边界大于等于右边界。最后把基准值放到正确的位置上,然后递归处理左边和右边的子数组。