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.
翻译:我们用 $( log_ 2, x) 插入时间来显示 $O (log n), 用于基于比较的优先队列。 我们用 $( k\ log n) 来显示高效优先队列的最低时间提取功能。 我们用 $( kplan et al., SOSA'19) 来显示高效优先队列的最小功能。 我们用 $( k\ log\ log (n/ k) 时间) 来显示高效优先队列的最小功能。 我们用 $( k\ log\ log) 来显示 $( lax) 。 我们用 $( k\ log) 来显示基于 比较的优先队列的最小功能( kp) 。 最差的时间是 。 当经典的 Fibonnacciccicicle 和 Brodal 的队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列队列的树形树上, $( kk) $ (n_ log log (n\ log) log (n) log) rent_ lax_ lax_ lax lax_ lax lax lax lax) 时间, lax lax lax lax