Java 实现快排
快速排序(QuickSort)是一种常用的排序算法,基本思想是将待排序的序列分成两部分,一部分小于基准值,一部分大于基准值,然后递归地对这两部分进行快速排序,直到整个序列有序。
以下是 Java 实现快速排序的代码:
public static void quickSort(int[] arr, int left, int right) {
if (left < right) {
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
swap(arr, i, j);
}
}
swap(arr, i + 1, right);
return i + 1;
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
其中,quickSort() 方法是递归实现快速排序的函数,partition() 方法是将序列分成两部分的函数,swap() 方法用于交换数组中两个元素的位置。
快速排序的时间复杂度为 $O(n\log n)$,空间复杂度为 $O(\log n)$。
原文地址: https://www.cveoy.top/t/topic/wFJ 著作权归作者所有。请勿转载和采集!