\begin{algorithm}
        \caption{Iterative Randomized Select}
        \begin{algorithmic}
        \INPUT a sequence $A$ of $n$ elements and an integer $i$
        \OUTPUT the $i$-th element of $A$
        \STATE $p = 1$
        \STATE $r = n$
        \WHILE{$p < r$}
            \STATE $q =$ \CALL{RandomizedPartition}{$A, p, r$}
            \IF{$q < i$}
                \STATE $p = q + 1$
            \ELSEIF{$q > i$}
                \STATE $r = q - 1$
            \ELSE
                \RETURN $A[q]$
            \ENDIF
        \ENDWHILE
        \RETURN $A[p]$
        \end{algorithmic}
        \end{algorithm}