中文

双堆选择算法:高效、固有并行且略显神秘

数据结构与算法 2007-06-15 v1 计算复杂性 分布式、并行与集群计算

摘要

提出了一种固有并行的算法,用于高效执行选择操作:即在 NN 个元素的集合中查找第 KK 大的元素。选择是许多更复杂算法的常见组成部分,因此是一个被广泛研究的问题。所提出的双堆选择算法并无太多新意:堆数据结构源自 J.W.J. Williams,自底向上的堆构建源自 R.W. Floyd,而双堆数据结构的概念则源自 J.W.J. Williams 和 D.E. Knuth。该算法的创新仅限于少数相对次要的实现技巧:1) 两个堆的根位于划分值处,而非最小值和最大值处;2) 其中一个堆(较小值堆)的编码采用了负索引;3) 算法的交换阶段类似于自底向上的堆构建,但使用后序树遍历来导航堆。在单处理器上运行时,双堆选择算法的性能与带有中值估计的 quickselect(C.A.R. Hoare 快速排序算法的一种常见变体)具有竞争力。在并行处理器上运行时,由于其子任务易于划分且天生平衡,双堆选择算法表现更优。

关键词

引用

@article{arxiv.0706.2155,
  title  = {Dualheap Selection Algorithm: Efficient, Inherently Parallel and Somewhat Mysterious},
  author = {Greg Sepesi},
  journal= {arXiv preprint arXiv:0706.2155},
  year   = {2007}
}

评论

5 pages, 6 figures

R2 v1 2026-06-29T01:14:10.938Z