private void siftUp(int pos) {
            if (pos == 0) return;
            if (heap.get(pos).compareTo(heap.get(pos / 2)) > 0) {
                swap(pos, pos / 2);
                siftUp(pos / 2);
            }
        }