2015年2月21日 星期六

kth-biggest algorithm

如何在不排序的情況下,找出第k大的值(kth-largest algorithm)


這是前幾天在看八卦板的時候看到有人提到,其中提到了這題目是有O(n)的解法。一時好奇就查了一下,結果發現了以往的認知都是錯的…  所以寫來記錄

先寫一下結論:
1:是有o(n)的解法,但是演算法過於複雜,且常數k 很大,因此除非n很大,而且真的有絕對的必要,還是少使用。

2: 一般用半quicksort, selectsort的方法解此題,雖然複雜度是O(nlogn),但其實計算過後,worst case是O(n^2),但average case是O(n)
(後面會寫數學公式)