隨機化快排和決策樹

一、隨機化快速排序算法算法

  (1)、快速排序的壞處:徹底順序/徹底逆序時時間複雜度爲:O(n^2),其他的狀況時間複雜度爲:O(nlogn),算法的效率與輸入順序有關;
ide

  (2)、隨機選擇主元,好處:其運行時間不依賴於輸入序列的順序,算法的效率與輸入的順序無關;spa

  (3)、最差的狀況由隨機數產生器決定,隨機化快速排序的時間複雜度爲:O(nlogn);3d


二、比較排序的算法模型blog

  該模型中,只能作的操做:< <= > .......,來決定元素的相對順序;排序

  侷限性:該模型只能用於能夠比較大小的數據類型;get

  總結:比較排序的算法時間複雜度不會小於:O(nlogn);it


三、決策樹下的排序算法io

  有3個數<a1, a2, a3>,用決策樹進行排序。class

wKioL1inCqayjnUkAAAl1hNW1I4475.png-wh_50

  (1)、決策樹:通常狀況下,有n個元素須要排序,左邊的子樹說明ai <= aj;右邊的子樹對應ai > aj;每個葉子結點表示一種排序結果,最終的結果a1 < a2 < a3......< an;

  (2)、所以比較型排序算法均可以被轉換成決策樹模型的方式;

  (3)、n值的決策樹,就是把算法中這些比較的全部可能結果分別列出來;決策樹指出了全部可能的路線,用決策樹分析比較型的算法是頗有用的;

  對於n個元素的排序, 用決策樹能夠證實比較型的排序算法的時間複雜度:取決於樹的高度,此時葉子節點的個數是n!,樹高>=nlog(n);

  樹的高度決定比較的次數,進而決定時間複雜度;

wKiom1inFIuwjKWLAACzCfnWM5U198.png-wh_50

相關文章
相關標籤/搜索