2016-02-19 44 views
0

我正在努力尋找快速排序的最佳輸入數組。我的數組是100個元素,由1到100的整數組成。我選擇最後一個元素作爲數據透視值。什麼是快速排序的最佳輸入數組

我知道我想要最後一個元素爲50,這樣我得到兩個長度相等的子數組。然後我知道我希望元素49是25,這樣我就可以分解另一個事件了。

我有點困惑,把原來的25放在哪裏,以便在第一次拆分之後它位於49.任何人都可以幫助我理解算法更好一點嗎?

我不一定要找一個例子,而是一個關於如何實現職位的解釋。我想要10,100,1000 ...長度數組的答案。

+0

...爲什麼你使用你的最後一個元素爲支點?您可能想要https://en.wikipedia.org/wiki/Quicksort翻閱。 –

+0

對於100個元素,實際測量現代硬件上任何常見排序算法之間的差異都會非常困難。 –

+0

對於算法的理解不一定是性能方面的事情。我只是不太清楚第二組主鍵值相對於原始數組的位置。 –

回答

2

使用最後一個元素作爲支點的Quicksort的最佳情況是平衡二叉搜索樹的後序遍歷。例如:

 5 
/ \ 
    3  7 
/\ /\ 
1 4 6 8 

這個二叉樹的後序遍歷

1 4 3 6 8 7 5 
+0

這正是我所期待的。謝謝。 –

相關問題