Abstract
We show how to build a binary heap in-place in linear time by performing ~ 1.625n element comparisons, at most ~ 2.125n element moves, and ~ n/B cache misses, where n is the size of the input array, B the capacity of the cache line, and ~ f(n) approaches f(n) as n grows. The same bound for element comparisons was derived and conjectured to be optimal by Gonnet and Munro; however, their procedure requires Θ(n) pointers and does not have optimal cache behaviour. Our main idea is to mimic the Gonnet-Munro algorithm by converting a navigation pile into a binary heap. To construct a binary heap in-place, we use this algorithm to build bottom heaps of size and adjust the heap order at the upper levels using Floyd's sift-down procedure. On another frontier, we compare different heap-construction alternatives in practice.
Original language | English |
---|---|
Title of host publication | Mathematical Foundations of Computer Science 2012 : 37th International Symposium, MFCS 2012, Bratislava, Slovakia, August 27-31, 2012. Proceedings |
Editors | Branislav Rovan, Vladimiro Sassone, Peter Widmayer |
Number of pages | 12 |
Publisher | Springer |
Publication date | 2012 |
Pages | 259-270 |
ISBN (Print) | 978-3-642-32588-5 |
ISBN (Electronic) | 978-3-642-32589-2 |
DOIs | |
Publication status | Published - 2012 |
Event | 37th International Symposium on Mathematical Foundations of Computer Science - Bratislava, Slovakia Duration: 27 Aug 2012 → 31 Aug 2012 Conference number: 37 |
Conference
Conference | 37th International Symposium on Mathematical Foundations of Computer Science |
---|---|
Number | 37 |
Country/Territory | Slovakia |
City | Bratislava |
Period | 27/08/2012 → 31/08/2012 |
Series | Lecture notes in computer science |
---|---|
Volume | 7464 |
ISSN | 0302-9743 |