确定性无缓存感知 Funnelselect
数据结构与算法
2024-02-28 v1
摘要
在多选择问题中,给定一个包含 个元素的未排序数组 和一个包含 个查询秩 的数组,任务是按排序顺序返回 中秩分别为 的 个元素。该问题的渐近确定性比较复杂度已由 Dobkin 和 Munro [JACM 1981] 解决。在 I/O 模型中,Hu 等人 [SPAA 2014] 实现了最优 I/O 复杂度。最近 [ESA 2023],我们提出了一种具有匹配 I/O 复杂度的无缓存感知算法,名为 funnelselect,因为它大量借鉴了 Frigo, Leiserson, Prokop 和 Ramachandran [FOCS 1999] 开创性论文中的无缓存感知排序算法 funnelsort 的思想。Funnelselect 本质上是随机的,因为它依赖采样来廉价地找到许多好的枢轴。在本文中,我们提出了确定性 funnelselect,在无随机化的情况下以无缓存感知方式实现了相同的最优 I/O 复杂度。我们的新算法本质上用一个(期望意义上的)使用随机枢轴的反向漏斗计算,替换为使用多个反向漏斗计算的递归算法。为了满足 I/O 界限,这需要基于查询秩序列的熵仔细选择子问题规模;因此,确定性 funnelselect 提出了随机 funnelselect 所未遇到的独特技术挑战。 resulting 的最坏情况 I/O 界限为 ,其中 是外部存储块大小, 是内部存储大小(对于某个常数 ),且 (假设 且 )。
引用
@article{arxiv.2402.17631,
title = {Deterministic Cache-Oblivious Funnelselect},
author = {Gerth Stølting Brodal and Sebastian Wild},
journal= {arXiv preprint arXiv:2402.17631},
year = {2024}
}