用java写一个快速排序
时间: 2023-03-19 16:25:00 浏览: 109
以下是使用Java编写的快速排序算法:
```
public class QuickSort {
public static void main(String[] args) {
int[] arr = {5, 2, 9, 1, 5, 6};
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 pivotIndex = partition(arr, left, right);
quickSort(arr, left, pivotIndex-1);
quickSort(arr, pivotIndex+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++;
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;
}
}
```
快速排序的基本思路是选择一个基准值,然后将小于基准值的元素放在基准值的左边,大于基准值的元素放在基准值的右边。通过递归的方式,不断对左右两个子序列进行排序,直到所有子序列都变为有序序列。在上面的代码中,`partition()`方法是用来实现分区操作的,即将数组分为左右两个部分。`quickSort()`方法是递归调用的快速排序方法。
阅读全文