请用Java语言写出快速排序的算法代码
时间: 2023-07-23 19:57:47 浏览: 83
当然,这里是快速排序的Java代码实现:
```java
public class QuickSort {
public static void quickSort(int[] array, int low, int high) {
if (low < high) {
int pivotIndex = partition(array, low, high);
quickSort(array, low, pivotIndex - 1);
quickSort(array, pivotIndex + 1, high);
}
}
private static int partition(int[] array, int low, int high) {
int pivot = array[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (array[j] <= pivot) {
i++;
swap(array, i, j);
}
}
swap(array, i + 1, high);
return i + 1;
}
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
public static void main(String[] args) {
int[] array = {5, 2, 9, 1, 3, 6, 8, 4, 7};
quickSort(array, 0, array.length - 1);
System.out.println("Sorted array: " + Arrays.toString(array));
}
}
```
这段代码实现了快速排序算法。在 `quickSort` 方法中,我们选择最后一个元素作为基准值(pivot),将数组分成两部分,比基准值小的放在左边,比基准值大的放在右边。然后递归地对左右两部分进行排序。`partition` 方法用于实现分区过程,其中使用了双指针的方式。最后,在 `main` 方法中,我们可以测试这个快速排序算法,并打印排序后的数组。
阅读全文