An algorithm for merging heaps
We present an algorithm to merge priority queues organized as heaps. The worst case number of comparisons required to merge two heaps of sizes k and n is \(O(\log(n)*\log(k)).\) The algorithm requires \(O(k+\log(n)*\log(k))\) data movements if heaps are implemented using arrays and \(O(\log(n)*\log(k))\) for a pointer-based implementation. Previous algorithms require either \(O(n+K)\) data movements and comparisons, or \(O(k*\log(\log(n+k)))\) comparisons and \(O(k*\log(n+k))\) data movements. The algorithm presented in this paper improves on the previous algorithms for the case when \(k>\log(n)\).
- A pointer-free data structure for merging heaps and min-max heaps
- A tree-based mergesort
- The heap-mergesort
- Efficient privacy-preserving data merging and skyline computation over multi-source encrypted data
- A survey on priority queues
- Merging heaps in parallel
- The K-D heap: An efficient multi-dimensional priority queue
- Range-restricted mergeable priority queues
- A characterization of heaps and its applications
This page was built for publication: An algorithm for merging heaps
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q797280)