\begin{algorithm} \caption{Max Heap Delete} \begin{algorithmic} \STATE \COMMENT{a lazier and slower version} \PROCEDURE{MaxHeapDelete}{$A, i$} \STATE \CALL{HeapIncreaseKey}{$A, i, \infty$} \STATE \CALL{HeapExtractMax}{$A$} \ENDPROCEDURE \STATE \STATE \COMMENT{a faster but more complex version} \PROCEDURE{MaxHeapDelete}{$A, i$} \IF{$A[i] > A[A.\text{heap-size}]$} \STATE $A[i] = A[A.\text{heap-size}]$ \STATE \CALL{MaxHeapify}{$A, i$} \ELSE \STATE \CALL{HeapIncreaseKey}{$A, i, A[A.\text{heap-size}]$} \ENDIF \STATE $A.\text{heap-size} = A.\text{heap-size} - 1$ \ENDPROCEDURE \end{algorithmic} \end{algorithm}