Funnelselect: Cache-oblivious multiple selection
The multiple-selection problem asks to find several elements of given ranks in a list of unordered numbers. We present the first I/O-optimal cache-oblivious algorithm for this problem.
Our solution is a randomized algorithm related to (multiple) quickselect, but using a funnel (from (lazy) funnelsort) in reverse for I/O-efficient multiway partitioning.
Update
We found a deterministic algorithm with the same running-time complexities in our SWAT 2024 paper.