(1) I tested BinaryHeap. It was far slower and requires nearly the double the number of comparisons. The difference is that BinaryHeap uses a standard sift function whereas my implementation here is "bottom-up". I could enhance BinaryHeap to be bottom-up instead, but the fact would remain, it's still far slower and probably best left for another pull request. I may file it as an enhancement in the bug tracker.
(2) I replaced all the assignments with "swapAt".