private int getMaxInd(int pos1, int pos2) {
        if (Math.min(pos1, pos2) >= size)
            throw new ArrayIndexOutOfBoundsException(String.format(
                    "Invalid data: %d, %d", pos1, pos2));
        if (Math.max(pos1, pos2) >= size)
            return Math.min(pos1, pos2);
        return heap[pos1] < heap[pos2] ? pos2 : pos1;
    }