Amortized efficiency of list update and paging rules
Communications of the ACM
Journal of Algorithms
Algorithms from P to NP (vol. 1): design and efficiency
Algorithms from P to NP (vol. 1): design and efficiency
Average case analysis of heap building by repeated insertion
Journal of Algorithms
The Computer Journal - Special issue on models and architectures
The influence of caches on the performance of heaps
Journal of Experimental Algorithmics (JEA)
Computer architecture (2nd ed.): a quantitative approach
Computer architecture (2nd ed.): a quantitative approach
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Heaps and heapsort on secondary storage
Theoretical Computer Science
The influence of caches on the performance of sorting
Journal of Algorithms
Implementing Quicksort programs
Communications of the ACM
Communications of the ACM
Communications of the ACM
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Measuring Cache and TLB Performance and Their Effect on Benchmark Runtimes
IEEE Transactions on Computers
Sorting and Searching on the Word RAM
STACS '98 Proceedings of the 15th Annual Symposium on Theoretical Aspects of Computer Science
Fast Priority Queues for Cached Memory
ALENEX '99 Selected papers from the International Workshop on Algorithm Engineering and Experimentation
A Meticulous Analysis of Mergesort Programs
CIAC '97 Proceedings of the Third Italian Conference on Algorithms and Complexity
Pushing the Limits in Sequential Sorting
WAE '00 Proceedings of the 4th International Workshop on Algorithm Engineering
Hi-index | 0.00 |
The behaviour of three methods for constructing a binary heap is studied. The methods considered are the original one proposed by Williams [1964], in which elements are repeatedly inserted into a single heap; the improvement by Floyd [1964], in which small heaps are repeatedly merged to bigger heaps; and a recent method proposed, e. g., by Fadel et al. [1999] in which a heap is built layerwise. Both the worst-case number of instructions and that of cache misses are analysed. It is well-known that Floyd's method has the best instruction count. Let N denote the size of the heap to be constructed, B the number of elements that fit into a cache line, and let c and d be some positive constants. Our analysis shows that, under reasonable assumptions, repeated insertion and layerwise construction both incur at most cN/B cache misses, whereas repeated merging, as programmed by Floyd, can incur more than (dN log2 B)/B cache misses. However, for a memory-tuned version of repeated merging the number of cache misses incurred is close to the optimal bound N/B.