快速排序(Quick Sort)是 Java JDK 中一种常用的排序算法。 快速排序的基本思想是:选择一个基准元素,通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比基准元素关键字小,另一部分记录的关键字均比基准元素关键字大。然后分别对这两部分记录继续进行排序,以达到整个序列有序。 以下是快速排序的 Java 代码示例: ```java public class QuickSort { // 交换数组中的两个元素 public static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } // 对数组进行分区操作,返回基准元素的最终位置 public static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = (low - 1); for (int j = low; j <= high - 1; j++) { if (arr[j] <= pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return (i + 1); } // 快速排序的递归函数 public static void quickSort(int[] arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } } // 打印数组的函数 public static void printArray(int[] arr) { for (int value : arr) { System.out.print(value + " "); } System.out.println(); } // 测试示例 public static void main(String[] args) { int[] arr = {12, 11, 13, 5, 6}; int n = arr.length; System.out.println("排序前的数组为:"); printArray(arr); quickSort(arr, 0, n - 1); System.out.println("排序后的数组为:"); printArray(arr); } } ``` 快速排序的平均时间复杂度为 O(n log n),空间复杂度为 O(log n)。它在大多数情况下是一种非常高效的排序算法,但在最坏情况下(例如数组已经有序),时间复杂度会退化为 O(n^2)。为了避免最坏情况,可以随机选择基准元素。 [2024-07-29 22:23:05 | AI写代码神器 | 592点数解答]