Efficiency of Self-Adjusting Heaps
Corwin Sinnamon, Robert E. Tarjan
TL;DR
This work resolves a long-standing question about self-adjusting heaps by showing that slim and smooth heaps achieve $O(\log n)$ time for delete-min, $O(\log\log n)$ for decrease-key, and $O(1)$ for other operations, with $n$ counting only items eventually deleted. The authors develop a canonical heap framework, introduce time-shifting lemmas, and conduct a nuanced, rank-based analysis across three self-adjusting heap families (multipass pairing, slim, smooth), obtaining tight or near-tight amortized bounds. A key innovation is bounding the total number of deletion links via charges tied to node-rank changes and a detailed accounting of left/right/central links, both in eager and lazy variants. The results significantly improve previous bounds and match lower bounds for slim and smooth heaps (Iacono and Özkan), while establishing near-optimal bounds for multipass pairing heaps and highlighting open gaps (notably for decrease-key in multipass pairing). Overall, the paper advances both the theory and practical understanding of self-adjusting heaps, connecting them to lower bounds and BST dualities, and outlining pathways for further tightening of these bounds.
Abstract
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 Özkan.
