From the READEM:
Heap with compile-time parameteric branching factor, also known as d-ary
heap.
Note that there is a binary heap in the standard library if you do not want
to use this module:
std.PriorityQueue
Performance notes:
- Heaps with higher branching factors are faster in inserting element and
slower in removing elements. If you are going to insert and then remove all
elements a binary heap is already quite fast and a branching factor
higher than 5 is probably going to be less optimal. The optimal branching
factor is usually around 4.
- The branching factor here is compile time to enable the optimization of
division by the compiler, see e.g:
Montgomery modular multiplication.
- If case you need to pop the top element and insert a new one, or vice
versa, use the
replaceTop
member function to avoid paying the extra
cost of "bubbling-up" the inserted element.