中文

具有最坏情况扩展的快速斐波那契堆

数据结构与算法 2019-11-27 v1

摘要

我们致力于降低基于比较且具有最优最坏情况性能的堆的开销。本文受严格斐波那契堆[1]的启发,其中G. S. Brodal、G. Lagogiannis和R. E. Tarjan以渐近最优的最坏情况时间(基于关键字比较)实现了带有DecreaseKey和Meld接口的堆。在文献[2]中,相关思想被详尽阐述,并表明采用一种丢失先前比较信息少得多的策略也可达到相同的渐近时间。这些堆在维护违例列表方面存在巨大开销。我们提出一种降低该开销的简易替代方案。它使我们能够实现快速的摊还斐波那契堆,其中用户可以以保证最坏情况时间的变体调用某些方法。若如此调用,在调用某个方法的摊还版本之前,这些堆不保证为斐波那契堆。当然我们也可以一直调用最坏情况版本,但由于保证带来开销,若我们不是专注于单独操作的复杂度,调用摊还版本是更优选择。我们已经证明可以实现完整的DecreaseKey-Meld接口,但Meld接口对这些堆而言并不自然,因此若不需要Meld,更简单的实现即可满足。由于我不知道需要Meld的应用,我们将专注于无Meld变体,但也会展示相应改动可应用于含Meld的变体。文献[1]、[2]表明这些堆可在指针机模型上实现。对于快速的实际实现,我们更倾向于使用数组。我们的目标是减少指针操作次数。通过指向秩列表的指针来维护秩将是不必要的开销。

关键词

引用

@article{arxiv.1911.11637,
  title  = {Fast Fibonacci heaps with worst case extensions},
  author = {Vladan Majerech},
  journal= {arXiv preprint arXiv:1911.11637},
  year   = {2019}
}

备注

15 pages at all, 4+2/2 pages of tables, 1 figure. arXiv admin note: text overlap with arXiv:1911.04372