A Linear Potential Function for Pairing Heaps
本文给出了线性值域对堆的第一势函数。这意味着短操作序列的运行时间比以前已知的要快。它也比已知的唯一能给出插入的摊余常数摊余时间的势函数简单。
2016-06-25 cs.DS
Soft Sequence Heaps
Chazelle [JACM 00]介绍了软堆作为有效的最小生成树算法的构建块,最近Kaplan等人[SOSA 2019]展示了如何应用软堆来实现各种选择问题的更简单算法。通过允许在总共$N$插入之后损坏堆中的项目的$εN$,软堆权衡效率的准确性,其中损坏的项目是具有人为增加的键的项目,并且$0 < ε\leq 1/2$是固定的错误参数。Chazelle的软堆是基于二叉树的,并且支持在摊销$O(\lg(1/ε))$时间内的插入和在摊销$O(1)$时间内的提取最小操作。在本文中,我们探讨了软堆的设计空间。本文的主要贡献是一个替代的软堆实现合并排序序列的基础上,与Chazelle的软堆的时间范围相匹配。我们还讨论了Kaplan等人[SICOMP 2013]的软堆的变体,其中我们避免了懒惰地执行插入。它是基于三进制树而不是二进制树,并匹配卡普兰等人的时间界限,即,摊销的$O(1)$插入和摊销的$O(\lg(1/ε))$ extract-min。我们的两种数据结构都只在extract-min操作之后引入损坏,该操作返回被该操作损坏的项集合。
2020-08-12 cs.DS
Replacing Mark Bits with Randomness in Fibonacci Heaps
斐波那契堆是一种确定性的数据结构,它实现了具有最佳摊销操作成本的优先级队列。斐波那契堆的一个不幸的方面是,它们必须维护一个“标记位”,这只用于确保堆操作的效率,而不是正确性。Karger提出了斐波那契堆的一个简单的随机变体,其中标记位被硬币翻转所取代。此变体仍然具有插入、减少键和合并的预期摊销成本$O(1)$。Karger解释说,该数据结构预期delete-min的摊销成本为$O(\log s)$,其中$s$是堆操作的数量。我们给出了一个严格的分析Karger的随机斐波那契堆,解决Karger的猜想。具体来说,我们得到匹配的上,下界的$Θ(\log^2 s / \log \log s)$的delete-min的运行时。我们还证明了一个紧的下界的$Ω(\sqrt{n})$ delete-min的堆元素的数量$n$。用于证明此界限的请求序列也解决了Fredman关于级联切割是否必要的公开问题。最后,我们对这些堆进行了一个简单的附加修改,它为delete-min生成了一个紧凑的运行时$O(\log^2 n / \log \log n)$。
2015-02-18 cs.DS
Pairing Heaps with Costless Meld
改进\cite{elm0}中的结构和分析,我们给出了配对堆的变体,该变体具有摊销的每合并成本为零(与\cite{elm0}中的$O(\log \log{n})$相比),并且对于所有其他操作具有相同的摊销界限。更准确地说,新的配对堆要求:每个meld没有成本,每个find-min和insert的O(1),每个delete-min的$O(\log{n})$,以及每个decrease-key的$O(\log\log{n})$。这些边界是任何自调整堆中最著名的,并且与Fredman证明的此类堆族的下限相匹配。此外,我们所做的更改使我们的结构比\cite{elm0}中的结构更简单。
2009-04-09 cs.DS
Padovan heaps
我们分析了Fibonacci族的优先队列。本文受Violation heap [1]的启发,其中A. Elmasry保存一个指针来表示Fibonacci堆节点,同时实现与M的Fibonacci堆[2]相同的摊销边界。L. Fredman和R. E.塔扬不幸的是,作者强迫堆很宽,这违背了最佳堆原则。我们的目标是实现相同的结果,但堆要窄得多。我们遵循超级比较的原则,所以我们试图记住所有比较的结果,并且从不比较不能最小的元素。我们尽可能地推迟比较。其实我一直想分享超昂贵的比较原理的想法,帕多万堆的发现让我这样做。当然,节省一个指针并不是一个很大的目标,但是我希望所给出的推理和对结果堆的摊还分析值得发表。
2019-02-27 cs.DS
Partition-based Simple Heaps
Aarhus University(奥胡斯大学);Université libre de Bruxelles(布鲁塞尔自由大学);University of Marburg(马尔堡大学);University of Liverpool(利物浦大学)
基于分区的简单堆是一种新的优先队列数据结构,通过 $O(\log n)$ 的双链表实现均摊 $O(\log n)$ 的提取最小值和 $O(\log \log n)$ 的插入与减小键操作。
2026-03-01 cs.DS
Fast Fibonacci heaps with worst case extensions
我们专注于减少堆的开销,基于与最佳最坏情况行为的比较。本文的灵感来自严格斐波那契堆[1],其中G. S. Brodal,G. Lagogiannis,和R. E. Tarjan用DecreaseKey和Meld接口在渐近最优的最坏情况下实现了堆(基于键比较)。在文献[2]中,详细阐述了这些思想,并表明可以用从先前比较中丢失更少信息的策略来实现相同的渐近时间。在这些堆中,违规列表的重复会产生很大的开销。我们提出了简单的替代减少这种开销。它允许我们实现快速摊销的斐波那契堆,用户可以在变体中调用一些方法,以避免最坏情况的时间。如果他这样做,堆不会被转换为Fibonacci,直到调用方法的摊销版本。当然,我们可以一直调用最坏情况下的版本,但是由于保证会产生开销,如果我们不关注单独操作的复杂性,那么调用摊销版本是首选。我们已经展示了,我们可以实现完整的DecreaseKey-Meld接口,但是Meld接口对于这些堆来说并不自然,所以如果不需要Meld,那么简单的实现就足够了。由于我不知道需要融合的应用程序,我们将集中在noMeld变体上,但我们将展示这些更改也可以应用于融合,包括变体。文献[1]、[2]表明堆可以在指针机模型上实现。对于快速的实际实现,我们宁愿使用数组。我们的目标是减少指针操作的数量。通过指向秩列表的指针来维护秩将是不必要的开销。
2019-11-25 cs.DS
Fibonacci Heaps Revisited
斐波那契堆是一个经典的数据结构,它支持在对数摊销时间内执行删除操作,并支持在O(1)摊销时间内执行所有其他堆操作。我们探索这种数据结构的设计空间。我们提出了一个版本,与原来的以下改进:(i)每个堆是由一个单一的堆排序树,而不是一组树。(ii)每个减键操作只进行一次切割和一系列等级变化,而不是进行一系列切割。(iii)由算法完成的所有比较的结果都明确地表示在数据结构中,因此没有浪费。通过一个例子说明,在没有级联剪切或秩变化的情况下,原数据结构和新版本都不能达到预期的效率,解决了Fredman的一个公开问题.最后,我们说明了丰富的设计空间,提出了几种替代方法来做级联排名的变化,包括一个随机化的策略,以前提出的卡格。我们把对这些替代方案的分析作为有趣的开放问题。
2014-07-22 cs.DS
Pairing heaps: the forward variant
配对堆是一种经典的堆数据结构,由Fredman、Sedgewick、Sleator和Tarjan在1986年提出。这是显着的,因为它的简单性和它在实践中的出色表现。配对堆的“魔力”在于删除最小项后发生的重组。所得到的树集合被合并成两轮:从左到右的配对轮,然后是从右到左的累积轮。Fredman等人通过与展开树的巧妙对应表明,在大小为$n$的配对堆中,所有操作都需要$O(\log{n})$分摊时间。他们还提出了一个可以说是更自然的变体,其中配对和累积都在组合的从左到右轮中执行(称为配对堆的前向变体)。在这种情况下,与张开的类比就不成立了,对前向变量的分析也就没有定论了。在本文中,我们表明,插入一个项目和删除的最小值在一个前向变量的配对堆都需要摊销时间$O(\log{n} \cdot 4^{\sqrt{\log{n}}} )$。这是相对于Fredman等三十年前所显示的$O(\sqrt{n})$结合的第一次改进。我们的分析依赖于一个新的势函数,它跟踪堆中的父子秩差。
2018-06-21 cs.DS
Near-Optimal Working-Set Heaps and Dijkstra on Pointer Machines
IT University of Copenhagen(哥本哈根信息技术大学);Université libre de Bruxelles(布鲁塞尔自由大学);Institute of Science and Technology Austria (ISTA)(奥地利科学技术研究所)
本文提出在指针机上实现近最优堆,支持常数时间Push和反阿克曼时间DecreaseKey,使Dijkstra算法运行效率接近最优。
2026-07-03 cs.DS
Strictly Implicit Priority Queues: On the Number of Moves and Worst-Case Time
Williams(1964)的二进制堆是一个简单的优先级队列,其特征在于只存储一个包含元素和元素数$n$的数组-这里表示严格隐式优先级队列。我们引入了两个新的严格隐式优先级队列。第一种结构支持摊销的$O(1)$时间插入和$O(\log n)$时间提取最小值操作,其中两个操作都需要摊销的$O(1)$元素移动。以前没有任何具有$O(1)$时间的隐式堆插入支持具有$O(1)$移动的这两个操作。第二个结构支持最坏情况的$O(1)$时间插入和$O(\log n)$时间(和移动)提取最小值操作。以前的结果要么被摊销,要么在操作之间需要$O(\log n)$位的附加状态信息。
2015-05-01 cs.DS
Heaps and Their Working Sets
ETH Zurich(苏黎世联邦理工学院);Charles University(查理大学);Princeton University(普林斯顿大学)
研究构建具有强大性能保证的堆,通过证明现有工作集界限概念等价简化理论,提出首个有摊还栈状界限、支持特定时间操作的堆实现,扩展堆应用范围并提升性能。
2026-07-28 cs.DS
Pure Pairing Heaps
Princeton University(普林斯顿大学);University of California, Santa Barbara(加州大学圣塔芭芭拉分校)
研究提出纯配对堆,通过消除删除最小元素操作中的合并步骤简化配对堆。给出其操作的摊还时间界,与多遍配对堆匹配,除减小键值界外也与自调整堆下界相符。分析方法是分组分析,该方法也适用于惰性配对堆。
2026-07-28 cs.DS
Dynamic Optimality Refuted -- For Tournament Heaps
我们证明了离线和在线的手指为基础的比赛堆进行关键修改的算法之间的分离。这些堆由二叉树实现,其中键存储在叶子上,中间结点跟踪它们各自子树的min。它们代表了研究自调整堆的自然起点,因为需要在修改时访问根到叶的路径。我们结合了以前的研究无序二叉搜索树的竞争比[Fredman WADS 2011]和顺序由下一个请求[Martínez-Roura TCS 2000]和[Munro ESA 2000],以表明对于任何数量的手指,锦标赛堆不能处理一系列修改键操作的竞争比在$o(\sqrt{\log{n}})$。这个分析的关键是描述堆在访问时可能经历的修改。在$n$键上有$\exp(Θ(n \log{n}))$有效堆,但只有$\exp(Θ(n))$二叉搜索树。我们通过深入研究的指针概念来参数化修改能力:数据结构可以任意操作的附加指针。在这里,我们证明,手指可以显着更强大的服务器上移动的静态树显示,访问$k$手指允许一个离线算法来处理任何访问序列摊销成本$O(\log_{k}(n) + 2^{\lg^{*}n})$。
2019-08-01 cs.DS
Selectable Heaps and Optimal Lazy Search Trees
我们证明了有效优先队列的$O(\log n)$时间提取最小函数可以推广到$O(k \log(n/k))$时间内$k$最小元素的提取(我们定义$\log(x)$为$\max(\log_2(x), 1)$ .),我们证明最优的比较为基础的优先级队列与$o(\log n)$时间插入。我们展示了堆排序树选择(Kaplan等人,SOSA '19)可以分别在$O(k \log(n/k))$摊销时间和最坏情况时间下应用于经典Fibonacci堆和Brodal队列的堆序树。我们还显示了删除$k$元素或选择而不提取可以在两个堆上执行,也是在$O(k \log(n/k))$时间。令人惊讶的是,所有的操作都是可能的,而不需要修改原始的Fibonacci堆和Brodal队列数据结构。然后,我们将结果应用于惰性搜索树(Sandlund & Wild,FOCS '20),创建一个基于可选堆的新间隔数据结构。这给出了最佳的$O(B+n)$时间惰性搜索树性能,将插入间隙$Δ_i$的复杂度从$O(\log(n/|Δ_i|) + \log \log n)$时间降低到$O(\log(n/|Δ_i|))$时间。当用作优先级队列以及其它情况时,也可以进行$O(1)$时间合并操作。如果使用Brodal队列,则可以使惰性搜索树的所有运行时都是最坏情况。
2022-01-10 cs.DS
Efficiency of Self-Adjusting Heaps
针对自调整堆是否支持O(log log n)时间decrease-key操作的开放问题,本文证明slim堆和平滑堆的decrease-key为O(log log n),多遍配对堆为O(log log n log log log n),显著改进了现有边界且前两者的边界是紧的。
2025-02-12 cs.DS
Improved bounds for multipass pairing heaps and path-balanced binary search trees
我们重新审视多遍配对堆和路径平衡二叉搜索树(BST),两个经典的算法数据结构维护。配对堆是一种简单而有效的“自调整”堆,由Fredman、Sedgewick、Sleator和Tarjan在1986年提出。在多通道变体(Fredman等人描述的原始配对堆变体之一)中,最小项目是通过重复的配对循环提取的,在该循环中,相邻的兄弟被链接。Sleator(Subramanian,1996)提出的路径平衡BST是Splay树(Sleator和Tarjan,1983)的自然替代品。在路径平衡的BST中,每当访问一个项时,指向该项的搜索路径被重新排列到一个平衡树中。尽管它们很简单,但这两种算法都很难分析。Fredman等人表明,多遍配对堆中的操作需要分摊的$O(\log{n} \cdot \log\log{n} / \log\log\log{n})$时间。为了在路径平衡的BST中搜索,Balasubramanian和Raman在1995年使用不同的参数展示了$O(\log{n} \cdot \log\log{n} / \log\log\log{n})$相同的摊销时间界限。在本文中,我们显示了这两个算法之间的显式连接,并提高了两个边界$O\left(\log{n} \cdot 2^{\log^{\ast}{n}} \cdot \log^{\ast}{n}\right)$,分别为$O\left(\lo…
2018-06-22 cs.DS math.CO
The Sync Heap: Delete First, Ask Questions Later
Max Planck Institute for Informatics(马克斯·普朗克信息学研究所);ETH Zürich(苏黎世联邦理工学院);Dresden University of Technology(德累斯顿工业大学)
本文提出同步堆(sync heap)数据结构,将堆的删除操作与被删元素身份揭示解耦,在用户有限次检查堆状态时实现插入和删除的常数摊还时间,将单位时间调度问题复杂度从O(n log n)优化至最优O(n)。
2026-10-16 cs.DS
A Selectable Sloppy Heap
研究了选择问题,即计算给定元素的$n$的$i$阶统计量的问题.在这里,我们提供了一个名为\emph{selectable sloppy heap}的数据结构,它处理一个动态版本,根据请求:(i)~一个新元素被插入或(ii)~一个指定的分位数组的元素从数据结构中删除。每个操作都在(理想!)常数时间-因此与$n$(存储在数据结构中的元素数)无关-假设分位数组的数量是固定的。这是第一个在常数时间内同时容纳插入和删除的结果。因此,我们的数据结构优于Chazelle的软堆数据结构(它只为固定的出错率$0<\varepsilon \leq 1/2$提供恒定的摊销复杂度)在应用程序中,如动态百分位数维护。该设计演示了如何减慢某个计算可以加快数据结构。
2017-08-10 cs.DS math.CO
SimdQuickHeap: The QuickHeap Reconsidered
Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院)
本文提出SimdQuickHeap,通过改进数据布局实现高效的SIMD操作,提升优先队列性能,实验显示其在合成和图基准测试中均表现优异。
2026-08-28 cs.DS