\begin{algorithm}
\caption{BinarySearch}
\begin{algorithmic}
\FUNCTION{BinarySearch}{A, n, target}
\STATE $left \gets 0$
\STATE $right \gets n - 1$
\WHILE{$left \le right$}
\STATE $middle \gets \lfloor \frac{left + right}{2} \rfloor$
\IF{$A[middle] = target$}
\RETURN $middle$
\ELIF{$A[middle] < target$}
\STATE $left \gets middle + 1$
\ELSE
\STATE $right \gets middle - 1$
\ENDIF
\ENDWHILE
\RETURN $-1$
\ENDFUNCTION
\end{algorithmic}
\end{algorithm}