/**********************************************************
快速排序的运行时间与划分是否对称有关。 1.其最坏情况是在划分的过程中产生两个区域分别包含 1 个和 n - 1 个元素的时候。由于partition的计算时间为 O(n) , 所以 如果算法partition每次都出现这种不对称的划分,复杂度为O(n^2)。 2.最好和平均都是 O(nlogn) 。 **********************************************************/ import java.util.Arrays; public class QuickSort { public static void quickSort(int[] a, int p, int r) { if (p < r) { int q = partition(a, p, r); quickSort(a, p, q - 1); //对左半段排序 quickSort(a, q + 1, r); //对右半段排序 } } private static void swap(int[] a, int i, int j) { private static int partition(int[] a, int p, int r) { while (a[j] > u) { public static void main(String[] args) { |
|
来自: shaobin0604@1... > 《算法》