java快速排序算法代码
javapublic 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
方法即可。