B-heap

A B-heap is a binary heap implemented to keep subtrees in a single page. This reduces the number of pages accessed by up to a factor of ten for big heaps when using virtual memory, compared with the traditional implementation.[1] The traditional mapping of elements to locations in an array puts (almost) every level in a different page.

There are other heap variants which are efficient in computers using virtual memory or caches, such as cache-oblivious algorithms, k-heaps,[2] and van Emde Boas layouts[3].

References

  1. ^ Poul-Henning Kamp, You're Doing It Wrong, ACM Queue, June 11, 2010.
  2. ^ D. Naor, C. U. Martel, and N. S. Matloff, Performance of Priority Queue Structures in a Virtual Memory Environment, The Computer Journal - Special issue on data structures archive, 34(5), Oct. 1991. doi>10.1093/comjnl/34.5.428 (what's doi?)
  3. ^ Peter van Emde Boas, R. Kaas, and E. Zijlstra, Design and Implementation of an Efficient Priority Queue, Mathematical Systems Theory 10:99-127, 1977.

External links