用java写一个快速排序
时间: 2024-03-09 17:20:11 浏览: 9
好的,快速排序是一种常用的排序算法,其基本思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列的目的。以下是用 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 pivotValue = arr[low]; //枢轴元素
while (low < high) {
while (low < high && arr[high] >= pivotValue) {
high--;
}
arr[low] = arr[high]; //交换比枢轴元素小的记录到左端
while (low < high && arr[low] <= pivotValue) {
low++;
}
arr[high] = arr[low]; //交换比枢轴元素大的记录到右端
}
arr[low] = pivotValue; //扫描完成,枢轴元素到位
return low; //返回枢轴元素位置
}
public static void main(String[] args) {
int[] arr = new int[]{5, 6, 3, 8, 7, 1, 0, 2, 9, 4};
quickSort(arr, 0, arr.length - 1);
for (int i : arr) {
System.out.print(i + " ");
}
}
}
```
希望可以帮助你解决问题!