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