\begin{algorithm}
\caption{Modified Tail Recursive Quicksort}
\begin{algorithmic}
\PROCEDURE{ModifiedTailRecursiveQuicksort}{$A, p, r$}
\WHILE{$p < r$}
\STATE $q =$ \CALL{Partition}{$A, p, r$}
\IF{$q < \lfloor (p+r) / 2\rfloor$}
\STATE \CALL{ModifiedTailRecursiveQuicksort}{$A, p, q-1$}
\STATE $p = q + 1$
\ELSE
\STATE \CALL{ModifiedTailRecursiveQuicksort}{$A, q+1, r$}
\STATE $r = q - 1$
\ENDIF
\ENDWHILE
\ENDPROCEDURE
\end{algorithmic}
\end{algorithm}