選擇問題:線性時間內找到序列的第k小的元素

  選擇問題——在序列中按順序找到某個元素。這可以用排序方法做到,即先排個序,在找到指定元素,但是這樣就按最快的堆排序、合併排序啥的都得是O(nlgn)數量級的,這裏採取的方法可以在期望爲O(n)的時間內完成。 具體的做法如同快速排序,因爲快速排序最好情況時間也爲O(nlogn),但是在實際情況下,遇到的代拍序列並不是最好的。因此,一種改進的方式是快速排序的隨機化版本。利用隨機化方式應用到該選擇問
相關文章
相關標籤/搜索