\begin{algorithm} \caption{D-ary Heap Insert and Increase Key} \begin{algorithmic} \PROCEDURE{D-MaxHeapInsert}{$A, key$} \STATE $A.\text{heap-size} = A.\text{heap-size} + 1$ \STATE $A[A.\text{heap-size}] = -\infty$ \STATE \CALL{D-HeapIncreaseKey}{$A, A.\text{heap-size}, key$} \ENDPROCEDURE \STATE \PROCEDURE{D-HeapIncreaseKey}{$A, i, key$} \IF{$key < A[i]$} \STATE \textbf{error} "new key is smaller than current key" \ENDIF \STATE $A[i] = key$ \WHILE{$i > 1$ \AND $A[$\CALL{D-Parent}{$i$}$] < A[i]$} \STATE exchange $A[i]$ with $A[$\CALL{D-Parent}{$i$}$]$ \STATE $i =$ \CALL{D-Parent}{$i$} \ENDWHILE \ENDPROCEDURE \end{algorithmic} \end{algorithm}