\begin{algorithm}
\caption{Partition Considering Equal Elements}
\begin{algorithmic}
\PROCEDURE{Partition'}{$A, p, r$}
\STATE $x = A[p]$
\STATE $q = p$
\STATE $t = p$
\FOR{$i = p + 1$ \TO $r$}
\IF{$A[i] < x$}
\STATE exchange $A[q]$ with $A[i]$
\STATE $q = q + 1$
\STATE exchange $A[t + 1]$ with $A[i]$
\STATE $t = t + 1$
\ELSEIF{$A[i] == x$}
\STATE exchange $A[t + 1]$ with $A[i]$
\STATE $t = t + 1$
\ENDIF
\ENDFOR
\RETURN $(q, t)$
\ENDPROCEDURE
\end{algorithmic}
\end{algorithm}