You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Find out in which cases the eager placing sift down (current / new version) is better than the sift down fully, sift up again algorithm.
Look at both From and pop() etc.
I intend to work on this, just write something to give datasets of various patterns and evaluate, but let's track it so that it doesn't get lost. Also, if I'm slow, anyone is super welcome to pick it up.
The text was updated successfully, but these errors were encountered:
BinaryHeap: Use full sift down in .pop()
.sift_down can either choose to compare the element on the way down (and
place it during descent), or to sift down an element fully, then sift
back up to place it.
A previous PR changed .sift_down() to the former behavior, which is much
faster for relatively small heaps and for elements that are cheap to
compare.
A benchmarking run suggested that BinaryHeap::pop() suffers
improportionally from this, and that it should use the second strategy
instead. It's logical since .pop() brings last element from the
heapified vector into index 0, it's very likely that this element will
end up at the bottom again.
Closes#29969
Previous PR #29811
See PR #29811
Find out in which cases the eager placing sift down (current / new version) is better than the sift down fully, sift up again algorithm.
Look at both
From
andpop()
etc.I intend to work on this, just write something to give datasets of various patterns and evaluate, but let's track it so that it doesn't get lost. Also, if I'm slow, anyone is super welcome to pick it up.
The text was updated successfully, but these errors were encountered: