快速排序java语言
时间: 2024-03-14 12:41:24 浏览: 95
快速排序是一种常用的排序算法,它的基本思想是通过分治的方式将一个大问题分解为多个小问题来解决。下面是快速排序的Java语言实现:
```java
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotIndex = partition(arr, low, high); // 将数组划分为两部分
quickSort(arr, low, pivotIndex - 1); // 对左子数组进行快速排序
quickSort(arr, pivotIndex + 1, high); // 对右子数组进行快速排序
}
}
private static int partition(int[] arr, int low, int high) {
int pivot = arr[low]; // 选取第一个元素作为基准值
int i = low, j = high;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
if (i < j) {
arr[i++] = arr[j];
}
while (i < j && arr[i] <= pivot) {
i++;
}
if (i < j) {
arr[j--] = arr[i];
}
}
arr[i] = pivot;
return i;
}
public static void main(String[] args) {
int[] arr = {5, 2, 9, 3, 7, 6, 1, 8, 4};
quickSort(arr, 0, arr.length - 1);
for (int num : arr) {
System.out.print(num + " ");
}
}
}
```
以上是一个简单的快速排序的Java实现。在`quickSort`方法中,首先选择一个基准值(这里选择第一个元素),然后通过`partition`方法将数组划分为两部分,左边的元素小于等于基准值,右边的元素大于等于基准值。然后递归地对左右子数组进行快速排序,直到排序完成。
阅读全文