双堆选择算法:高效、内在并行、有点神秘
Dualheap Selection Algorithm: Efficient, Inherently Parallel and Somewhat Mysterious
摘要:
提出了一种固有的并行算法,有效地执行选择:找到一组N个成员的第K个最大的成员。选择是许多更复杂算法的共同组成部分,因此是一个广泛研究的问题。在提出的双堆选择算法中没有太多新的东西:堆数据结构来自J.W.J.Williams,自底向上的堆构造来自R.W. Floyd提出,而两堆数据结构的概念来自J.W.J. Williams和D.E.高德纳该算法的新颖性仅限于一些相对较小的实现扭曲:1)这两个堆被定向为它们的根在分区值处而不是在最小值和最大值处,(较小值的堆)采用负索引,以及3)算法的交换阶段类似于自底向上的堆构造,而是用后序树遍历来导航堆。当在单处理器上运行时,双堆选择算法的性能与具有中值估计的快速选择(C.A.R.的常见变体)具有竞争力。霍尔快速排序算法。当运行在并行处理器上时,dualheap选择算法是优越的,因为它的子任务很容易分区和天生的平衡。
英文摘要:
An inherently parallel algorithm is proposed that efficiently performs selection: finding the K-th largest member of a set of N members. Selection is a common component of many more complex algorithms and therefore is a widely studied problem. Not much is new in the proposed dualheap selection algorithm: the heap data structure is from J.W.J.Williams, the bottom-up heap construction is from R.W. Floyd, and the concept of a two heap data structure is from J.W.J. Williams and D.E. Knuth. The algorithm's novelty is limited to a few relatively minor implementation twists: 1) the two heaps are oriented with their roots at the partition values rather than at the minimum and maximum values, 2)the coding of one of the heaps (the heap of smaller values) employs negative indexing, and 3) the exchange phase of the algorithm is similar to a bottom-up heap construction, but navigates the heap with a post-order tree traversal. When run on a single processor, the dualheap selection algorithm's performance is competitive with quickselect with median estimation, a common variant of C.A.R. Hoare's quicksort algorithm. When run on parallel processors, the dualheap selection algorithm is superior due to its subtasks that are easily partitioned and innately balanced.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。