写一个快速排序代码
时间: 2023-07-01 18:24:15 浏览: 45
好的,以下是 Java 语言的快速排序算法示例:
```java
public class Main {
public static void main(String[] args) {
int[] arr = {5, 3, 8, 6, 4};
quickSort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr)); // 输出排序后的数组
}
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++;
// 交换 arr[i] 和 arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 将基准值放到正确的位置上
int temp = arr[i + 1];
arr[i + 1] = arr[right];
arr[right] = temp;
return i + 1;
}
}
```
该程序实现了快速排序算法,使用了递归的思想,将数组不断分成左右两部分,直到每个部分只剩下一个元素或没有元素。在每一次分割过程中,取一个基准值,将数组中小于基准值的元素放到基准值的左边,将大于基准值的元素放到基准值的右边。然后再对左右两个部分分别进行快速排序。