Selectable Heaps and Optimal Lazy Search Trees

We show the \(O(\log n)\) time extract minimum function of efficient priority queues can be generalized to the extraction of the \(k\) smallest elements in \(O(k \log(n/k))\) time (we define \(\log(x)\) as \(\max(\log_2(x), 1)\).), which we prove optimal for comparison-based priority queues with \(o...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:arXiv.org 2022-01
Hauptverfasser: Sandlund, Bryce, Zhang, Lingyi
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:We show the \(O(\log n)\) time extract minimum function of efficient priority queues can be generalized to the extraction of the \(k\) smallest elements in \(O(k \log(n/k))\) time (we define \(\log(x)\) as \(\max(\log_2(x), 1)\).), which we prove optimal for comparison-based priority queues with \(o(\log n)\) time insertion. We show heap-ordered tree selection (Kaplan et al., SOSA '19) can be applied on the heap-ordered trees of the classic Fibonacci heap and Brodal queue, in \(O(k \log(n/k))\) amortized and worst-case time, respectively. We additionally show the deletion of \(k\) elements or selection without extraction can be performed on both heaps, also in \(O(k \log(n/k))\) time. Surprisingly, all operations are possible with no modifications to the original Fibonacci heap and Brodal queue data structures. We then apply the result to lazy search trees (Sandlund & Wild, FOCS '20), creating a new interval data structure based on selectable heaps. This gives optimal \(O(B+n)\) time lazy search tree performance, lowering insertion complexity into a gap \(\Delta_i\) from \(O(\log(n/|\Delta_i|) + \log \log n)\) to \(O(\log(n/|\Delta_i|))\) time. An \(O(1)\) time merge operation is also made possible when used as a priority queue, among other situations. If Brodal queues are used, all runtimes of the lazy search tree can be made worst-case.
ISSN:2331-8422