中文

配对堆:前向变体

数据结构与算法 2018-06-22 v2

摘要

配对堆(pairing heap)是一种经典的堆数据结构,由Fredman、Sedgewick、Sleator和Tarjan于1986年引入。它因其简单性以及在实践中的优异性能而引人注目。配对堆的“魔力”在于删除最小元素后发生的重构。由此产生的树集合通过两轮进行合并:从左到右的配对轮,随后是从右到左的累积轮。Fredman等人通过其与伸展树(splay trees)的优雅对应关系表明,在大小为 nn 的配对堆中,所有操作均花费 O(logn)O(\log{n}) 的摊还时间。他们还提出了一种可以说更自然的变体,其中配对和累积在组合的左到右轮中执行(称为配对堆的前向变体)。在这种情况下,与伸展的类比失效,并且前向变体的分析留作开放问题。在本文中,我们展示了在前向变体配对堆中插入一个元素和删除最小元素均花费摊还时间 O(logn4logn)O(\log{n} \cdot 4^{\sqrt{\log{n}}} )。这是自Fredman等人三十年前展示的 O(n)O(\sqrt{n}) 界限以来的首次改进。我们的分析依赖于一个新的势函数,该函数跟踪堆中的父子秩差。

关键词

引用

@article{arxiv.1709.01152,
  title  = {Pairing heaps: the forward variant},
  author = {Dani Dorfman and Haim Kaplan and László Kozma and Uri Zwick},
  journal= {arXiv preprint arXiv:1709.01152},
  year   = {2018}
}

备注

small fixes