java快速排序算法代码

java
public class QuickSort { public static void main(String[] args) { int[] array = {7, 2, 1, 6, 8, 5, 3, 4}; quickSort(array, 0, array.length - 1); System.out.println("Sorted array:"); for (int num : array) { System.out.print(num + " "); } } 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); } } public 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++; int temp = array[i]; array[i] = array[j]; array[j] = temp; } } int temp = array[i + 1]; array[i + 1] = array[high]; array[high] = temp; return i + 1; } }

这段代码演示了快速排序算法的实现。在快速排序中,首先选择一个基准元素,然后将数组分为两部分,使得左边的元素都小于基准元素,右边的元素都大于基准元素。接着,对这两部分分别进行递归快速排序。

这段代码中的 quickSort 方法是快速排序的主要逻辑,它采用了分治法的思想。具体步骤如下:

确定基准元素:选择数组中的最后一个元素作为基准元素 pivot。分区操作:遍历数组,将小于基准元素的元素放到基准元素的左边,将大于基准元素的元素放到右边。递归排序:对基准元素左右两部分分别递归地应用快速排序算法。

快速排序的时间复杂度为 O(n log n),其中 n 是数组的长度。在最坏情况下,时间复杂度为 O(n^2),但平均情况下通常表现较好。

你可以使用该代码对任意整数数组进行排序,只需将数组赋值给 array 变量,并调用 quickSort 方法即可。