Three PriorityQueue implementations: a binary heap, a ternary heap, and an array that holds minimum at index 0 (intentionally shitty)