Since the invention of the pairing heap by Fredman, Sedgewick, Sleator, and Tarjan, it has been an open question whether this or any other simple "self-adjusting" heap supports decrease-key operations in $O(\log\log n)$ time, where $n$ is the number of heap items. Using powerful new techniques, we answer this question in the affirmative. We prove that both slim and smooth heaps, recently introduced self-adjusting heaps, support heap operations in the following amortized time bounds: $O(\log n)$ for delete-min and delete, $O(\log\log n)$ for decrease-key, and $O(1)$ for all other heap operations, including insert and meld, where $n$ is the number of heap items that are eventually deleted: Items inserted but never deleted do not count in the bounds. We also analyze the multipass pairing heap, a variant of pairing heaps. For this heap implementation, we obtain the same bounds except for decrease-key, for which our bound is $O(\log\log n \log\log\log n)$, where again items that are never deleted do not count in $n$. Our bounds significantly improve the best previously known bounds for all three data structures. For slim and smooth heaps our bounds are tight, since they match lower bounds of Iacono and \"Ozkan.
翻译:自Fredman、Sedgewick、Sleator和Tarjan发明配对堆以来,一个悬而未决的问题是:这种或任何其他简单的“自调整”堆是否能在$O(\log\log n)$时间内支持减小关键字操作,其中$n$是堆中元素的数量。利用强大的新技术,我们肯定地回答了这个问题。我们证明,最近提出的两种自调整堆——纤薄堆与平滑堆,支持以下摊还时间复杂度的堆操作:删除最小值和删除操作需$O(\log n)$,减小关键字操作需$O(\log\log n)$,包括插入和合并在内的所有其他堆操作均为$O(1)$,其中$n$是最终被删除的堆元素数量:已插入但从未被删除的元素不计入复杂度界。我们还分析了配对堆的一个变体——多遍配对堆。对于该堆实现,我们获得了相同的时间界,但减小关键字操作除外,其时间界为$O(\log\log n \log\log\log n)$,其中同样不计入从未被删除的元素。我们的结果显著改进了这三种数据结构先前已知的最佳时间界。对于纤薄堆和平滑堆,我们的界是紧的,因为它们与Iacono和\"Ozkan提出的下界相匹配。