arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 0903.0116cs.DS
收藏

堆简化

Heaps Simplified

Bernhard Haeupler, Siddhartha Sen, Robert E. Tarjan

摘要:

堆是一种基本的数据结构,广泛用于各种应用程序,包括最短路径和最小生成树算法。在本文中,我们将探讨基于比较的,摊销效率堆实现的设计空间。从考虑动态单淘汰比赛,我们得到了二项式队列,一个经典的堆实现,在一个简单而自然的方式。我们给出了四个等价的方式表示堆所产生的比赛,我们得到两个新的变种的二项式队列,一棵树的版本和一个通过版本。我们扩展了一次通过版本以支持密钥减少操作,获得{ \em rank-pairing heap}或{ \em rp-heap}。秩配对堆结合了斐波那契堆的性能保证和接近配对堆的简单性。与配对堆一样,秩配对堆由任意结构的树组成,但这些树是按秩而不是按列表位置组合的,并且在密钥减少操作期间,秩变化而不是结构变化级联。

英文摘要:

The heap is a basic data structure used in a wide variety of applications, including shortest path and minimum spanning tree algorithms. In this paper we explore the design space of comparison-based, amortized-efficient heap implementations. From a consideration of dynamic single-elimination tournaments, we obtain the binomial queue, a classical heap implementation, in a simple and natural way. We give four equivalent ways of representing heaps arising from tournaments, and we obtain two new variants of binomial queues, a one-tree version and a one-pass version. We extend the one-pass version to support key decrease operations, obtaining the {\em rank-pairing heap}, or {\em rp-heap}. Rank-pairing heaps combine the performance guarantees of Fibonacci heaps with simplicity approaching that of pairing heaps. Like pairing heaps, rank-pairing heaps consist of trees of arbitrary structure, but these trees are combined by rank, not by list position, and rank changes, but not structural changes, cascade during key decrease operations.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑