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(\log n)$ t...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
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. |
---|---|
DOI: | 10.48550/arxiv.2011.11772 |