Algorithms Part 1 - Week 3–5之Quick-select筆記
功能: 從N個itmes中找到第k小的item
想法
切開陣列a
使其
a[j]
左邊的items
都比他小a[j]
右邊的items
都比他大
在一個subarray
裡重複select
步驟直到j = k
時間
- 平均是線性時間
- 證明在
ppt
裡P.27
Quick-select
在最差情況下會用~$1/2N^2$個compares,但演算法一開始的shuffle
可以讓其有一定機率是線性時間可完成
使用以及展望
- 尚未發現能保證線性時間的選擇演算法
- 在那之前,如果不需要全部都排序,就用
quick-select
Algorithms Part 1 - Week 3–5之Quick-select筆記
https://f88083.github.io/2023/11/28/Algorithms-Part-1-Week-3–5之Quick-select筆記/