An algorithm for merging heaps (Q797280)

From MaRDI portal
Revision as of 09:47, 30 July 2024 by Openalex240730090724 (talk | contribs) (Set OpenAlex properties.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
scientific article
Language Label Description Also known as
English
An algorithm for merging heaps
scientific article

    Statements

    An algorithm for merging heaps (English)
    0 references
    0 references
    0 references
    0 references
    1985
    0 references
    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)\).
    0 references
    0 references
    merging
    0 references
    priority queues
    0 references
    heaps
    0 references
    0 references
    0 references