# avoid line overflow in algorithm

How can I stop lines of my algorithm to be overflowing as shown in the picture below, I would like to break the lines that are too long into 2 lines and just go down to the next line if one line cannot fit in the column .

 \begin{algorithm}
\caption{Iterative Process}
\begin{algorithmic}[1]
\raggedright

\STATE  $OwnerClassPrediction()$
\STATE {iteration}=1
\STATE {Predictions(iteration-1)}=methodTraceList.predictions
\STATE {Predictions(iteration)}=$\emptyset$
\WHILE {$Predictions(iteration) \neq Predictions(iteration-1)$}

\STATE$Predictions(iteration)$=SurroundednessPurePattern($Predictions(iteration)$);
\STATE$Predictions(iteration)$=SurroundednessMixedPattern($Predictions(iteration)$);
\STATE $Predictions(iteration)$=InheritanceInterfacesPattern($Predictions(iteration)$);
\STATE $Predictions(iteration)$=AllCallersPattern($Predictions(iteration)$);
\STATE $Predictions(iteration)$=AllCalleesPattern($Predictions(iteration)$);
\STATE{iteration}++;
\ENDWHILE
\end{algorithmic}


\label{alg:MYALG} \end{algorithm}

You're using math mode incorrectly, and therefore TeX has no idea where a good line break should be placed despite using \raggedright. Below I've formatted the equations in the proper way, allowing for a line break to be placed around a relation (like =). I've also added some formatting style that should make your code more readable.

\documentclass{article}

\usepackage{algorithm,algorithmic}

\newcommand{\var}{\textit}
\newcommand{\proc}{\textbf}
\newcommand{\prop}{\texttt}
\newcommand{\plusplus}{{+}{+}}% Other options: https://tex.stackexchange.com/q/4302/5764

\begin{document}

\begin{algorithm}
\caption{Iterative Process}
\begin{algorithmic}[1]
\raggedright
\STATE \proc{OwnerClassPrediction}()
\STATE $\var{iteration} = 1$
\STATE $\proc{Predictions}(\var{iteration} - 1) = \prop{methodTraceList.predictions}$
\STATE $\proc{Predictions}(\var{iteration}) = \emptyset$
\WHILE{$\proc{Predictions}(\var{iteration}) \neq \proc{Predictions}(\var{iteration} - 1)$}
\STATE $\proc{Predictions}(\var{iteration}) = \proc{SurroundednessPurePattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = \proc{SurroundednessMixedPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = \proc{InheritanceInterfacesPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = \proc{AllCallersPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = \proc{AllCalleesPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\var{iteration}\plusplus$
\ENDWHILE
\end{algorithmic}
\end{algorithm}

\end{document}


I don't really enjoy the indentation associated with the automatic line breaks from \raggedright. You could consider manually breaking the content and inserting some indentation (\quad) manually.

\documentclass{article}

\usepackage{algorithm,algorithmic}

\newcommand{\var}{\textit}
\newcommand{\proc}{\textbf}
\newcommand{\prop}{\texttt}
\newcommand{\plusplus}{{+}{+}}% Other options: https://tex.stackexchange.com/q/4302/5764

\begin{document}

\begin{algorithm}
\caption{Iterative Process}
\begin{algorithmic}[1]
\STATE \proc{OwnerClassPrediction}()
\STATE $\var{iteration} = 1$
\STATE $\proc{Predictions}(\var{iteration} - 1) = \prop{methodTraceList.predictions}$
\STATE $\proc{Predictions}(\var{iteration}) = \emptyset$
\WHILE{$\proc{Predictions}(\var{iteration}) \neq \proc{Predictions}(\var{iteration} - 1)$}
\STATE $\proc{Predictions}(\var{iteration}) = {}$ \\
\quad $\proc{SurroundednessPurePattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = {}$ \\
\quad $\proc{SurroundednessMixedPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = {}$ \\
\quad $\proc{InheritanceInterfacesPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = {}$ \\
\quad $\proc{AllCallersPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\proc{Predictions}(\var{iteration}) = {}$ \\
\quad $\proc{AllCalleesPattern}(\proc{Predictions}(\var{iteration}))$
\STATE $\var{iteration}\plusplus$
\ENDWHILE
\end{algorithmic}
\end{algorithm}

\end{document}