Stooge排序

 

7-3 Stooge排序

    Howard、Fine等教授提出了下面的“漂亮的”排序算法:

 

 

 

a)證明:如果n=length[A],那麼STOOGE-SORT(A, 1, length[A])能正確地對輸入數組A[1...n]進行排序。

b)給出一個表達STOOGE-SORT最壞情況運行時間的遞歸式,以及關於最壞情況運行時間的一個緊確的漸進(Θ記號)界。

c)比較STOOGE-SORT與插入排序、合併排序、堆排序和快速排序的最壞情況運行時間。這幾位終生教授是否真的名符其實呢?

 

 

分析與解答:

a)對於數組A[i...j],STOOGE-SORT算法將這個數組劃分成均等的3份,分別用A, B, C表示。

     第6-8步類似於冒泡排序的思想。它進行了兩趟:

     第一趟的第6-7步將最大的1/3部分交換到C

     第二趟的第8步將除C外的最大的1/3部分交換到B

     剩餘的1/3位於A,這樣的話整個數組A[i...j]就有序了。

 

b)比較容易寫出STOOGE-SORT最壞情況下的運行時間的遞歸式

           T(n) = 2T(2n/3)+Θ(1)

     由主定律可以求得T(n)=n^2.71

 

c)各種排序算法在最壞情況下的運行時間分別爲:

    插入排序、快速排序:Θ(n^2)

    堆排序、合併排序:Θ(nlgn)

    相比於經典的排序算法,STOOGE-SORT算法具有非常差的性能,這幾位終生教授只能說是浪得虛名了^_^

 

 

 

 

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