論樞紐元的選擇方式對快速排序性能的影響

    樞紐元的選擇需要結合待排序數據的具體形態而定,如數據是否排序,是逆序還是正序等,下表對各種數據形態下的樞紐元選擇進行了總結。

                                                                        不同數據形態下樞紐元的選擇對比

  首元素 前兩個互異關鍵字中的較大者 隨機元素 所有關鍵字的平均值
正序排序

\small O(N^2)

退化爲簡單排序算法

\small O(N^2)

退化爲簡單排序算法

\small O(N^2)

退化爲簡單排序算法

\small O(Nlog(N))

樞紐元近似位於中間,一次遞歸數據對半分

反序排序

\small \frac{1}{2}\small O(N^2)

\small \frac{1}{2}\small O(N^2)

\small \frac{1}{2}\small O(N^2)

\small O(Nlog(N))

樞紐元近似位於中間,一次遞歸數據對半分

隨機排列

\small O(N^2)

退化爲簡單排序算法

\small O(N^2)

退化爲簡單排序算法

\small O(N^2)

退化爲簡單排序算法

\small O(Nlog(N))

樞紐元近似位於中間,一次遞歸數據對半分

        注1:表中所有複雜度的值均是按照最壞情況給出。

        注2:複雜度前綴分數表示實際運行時間要略少於該複雜度的值。

        注3:所有時間複雜度均按最壞情況給出。

        注4:對於反序排,,其每輪遞歸的計算量遵循 N-1,1, N-3,1,N-5,1,......。

        注5:對所有關鍵字取平均往往以3數中值或5數中值法替代。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章