|
/**********************************************************
快速排序的運行時間與劃分是否對稱有關。 1.其最壞情況是在劃分的過程中產(chǎn)生兩個區(qū)域分別包含 1 個和 n - 1 個元素的時候。由于partition的計算時間為 O(n) , 所以 如果算法partition每次都出現(xiàn)這種不對稱的劃分,復雜度為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... > 《算法》