B堆()是一个用来保证子树在一个内存页的二叉堆。这样可以在使用虚拟内存时减少访问很大堆时内存页的访问。传统的实现中,元素位置的映射(几乎)每一级都放在不同的内存页中。
也有其他非常高效实用虚拟内存和缓存的堆的变种,例如、k堆、和van Emde Boas树。
参见
*
参考文献
外部链接
- 实现: https://web.archive.org/web/20120722102205/https://www.varnish-cache.org/trac/browser/lib/libvarnish/binary_heap.c and http://phk.freebsd.dk/B-Heap/binheap.c
- [https://github.com/valyala/gheap Generic heap implementation with B-heap support].
- 更多参见:van Emde Boas layouts see Benjamin Sach [http://www.cs.bris.ac.uk/Research/Seminars/departmental/2008-03-13_DeptSeminar_BenSach.pdf Descent into Cache-Oblivion] or [http://blogs.msdn.com/b/devdev/archive/2007/06/12/cache-oblivious-data-structures.aspx Cache-oblivious data structures].
评论 (0)