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