java 快速排序算法实现
时间: 2023-10-23 09:36:15 浏览: 94
快速排序是一种高效的排序算法,下面是Java实现的示例代码:
```java
public class QuickSort {
public static void main(String[] args) {
int[] arr = {6, 3, 8, 5, 2, 7, 4, 1};
quickSort(arr, 0, arr.length - 1);
System.out.println("排序结果:");
for (int num : arr) {
System.out.print(num + " ");
}
}
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int partitionIndex = partition(arr, left, right);
quickSort(arr, left, partitionIndex - 1);
quickSort(arr, partitionIndex + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[left];
int i = left + 1;
int j = right;
while (true) {
while (i <= j && arr[i] <= pivot) {
i++;
}
while (i <= j && arr[j] > pivot) {
j--;
}
if (i >= j) {
break;
}
swap(arr, i, j);
}
swap(arr, left, j);
return j;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
```
这段代码实现了快速排序算法。首先在`main`方法中定义了一个待排序的数组`arr`,然后调用`quickSort`方法对数组进行排序,最后打印排序结果。
`quickSort`方法是快速排序的实现,它采用递归的方式进行排序。在每一次递归中,选择一个基准元素(这里选择第一个元素),然后将数组划分为两部分,左边部分的元素都小于等于基准元素,右边部分的元素都大于基准元素。然后分别对左右两部分进行递归排序。
`partition`方法是划分数组的过程,它使用两个指针`i`和`j`分别从左右两端向中间扫描,当找到不符合条件的元素时交换它们的位置,直到`i`和`j`相遇。最后将基准元素放到正确的位置上,并返回该位置。
`swap`方法用于交换数组中两个元素的位置。
以上就是Java实现快速排序算法的示例代码。
阅读全文