\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}