簡介
本文主要介紹決策樹模型,推導了基於比較的排序算法的最快速度,然後給出了一種在特定條件下的線性時間複雜度的排序算法。
decision-tree model
這裏決策樹就不多做介紹,其本質就是通過比較來給出所有排序結果的模型。基於比較的算法,merge sort, insertion sort, quick sort, heap sort這一類算法,都可以用決策樹模型來描述
根據推論,一顆完整的決策樹,需要的葉子(這裏可以使用排列組合的知識,要想構建一個數列完整的決策關係,至少需要次比較)
因此使用完全二叉樹去構建這個決策樹,得到的樹的深度肯定是最小的。就有
上面的公式是可以證明基於比較的排序算法,最快爲nlgn
Counting sort
counting sort是有一定前提的,就是對於,都有。僞代碼如下:
for j = 1 to k
C[j] = 0
for i = 1 to n
C[A[i]] = C[A[i]] +1
for j = 2 to k
C[j] = C[j]+C[j-1]
for i = n to 1
B[C[A[i]]] = A[i]
C[A[i]] = C[A[i]]-1
其running time is