private void siftDown(int pos) {
        if (2 * pos >= size)
            return;
        else {
            int maxIndex = getMaxInd(2 * pos, 2 * pos + 1);
            if (heap[maxIndex] > heap[pos]) {
                swap(maxIndex, pos);
                siftDown(maxIndex);
            }
        }
    }