\documentclass{article}
\usepackage{algorithm}
%\usepackage{algpseudocode}
\usepackage{algorithmic}
\usepackage{caption}

\usepackage{xepersian}
%\settextfont{XB Niloofar}
\begin{document}

\renewcommand{\algorithmicif}{\textbf{اگر}}
\renewcommand{\algorithmicthen}{\textbf{آنگاه}}
\renewcommand{\algorithmicelse}{\textbf{وگرنه}}
\renewcommand{\algorithmicendif}{\textbf{پایان شرط}}
\renewcommand{\algorithmicwhile}{\textbf{مادامی که}}
\renewcommand{\algorithmicdo}{\textbf{انجام بده}}
\renewcommand{\algorithmicendwhile}{\textbf{پایان حلقه}}
\renewcommand{\algorithmicfor}{\textbf{برای هر}}
\renewcommand{\algorithmicendfor}{\textbf{پایان حلقه}}

\begin{algorithm}
 \caption{الگوریتم من}
\begin{algorithmic}[1]
 \REQUIRE 
نقاط موجود (نقاط کنترل بالقوه) $x_1, x_2, ..., x_m$؛\\
 جواب آغازین $s_0=\text{بازه‌های متساوی الفاصله}=\{{cp}_1,...,{cp_n}\}$؛\\
 \ENSURE
زمان پایان پروژه؛

\STATE ${cp}_0\leftarrow 0, T\leftarrow 10, k_1=k_2=0$
\STATE $sbest=s_0$
\STATE $p\leftarrow 1$
\WHILE {$p\leq n$}
\STATE SM$[{cp}_{p-1},{cp}_p]$
\STATE شبکه را بروز کن
\STATE $p\leftarrow p+1$
\ENDWHILE
\STATE $f_0=C_{max}$، ($C_{max}$ زمان پایان پروژه بعد از اجرای حلقه 4-9 است) 
\STATE $fbest=f_0$
\WHILE {$k_1<=100$}
\STATE $k_1\leftarrow k_1+1$
\STATE $k_2\leftarrow k_2+1$
\STATE  $s_1\leftarrow \text{a new neighbourhood of}\ s_0$
\STATE $p\leftarrow 1$
\WHILE  {$p\leq n$}
\STATE SM$[{cp}_{p-1},{cp}_p]$
\STATE انحرافات را به بهترین شکل ممکن اصلاح کن ($CM$)
\STATE شبکه را بروز کن
\STATE $p\leftarrow p+1$
\ENDWHILE
\STATE $f_1=C_{max}$، ($C_{max}$ زمان پایان پروژه بعد از اجرای حلقه 17-22 است)
\IF {$f_1<f_0$}
\STATE $s_0=s_1$
\STATE $f_0=f_1$
\ELSE
\STATE $f_0=f_1$
\ENDIF
\algstore{M}
\end{algorithmic}
\end{algorithm}

\clearpage

\begin{algorithm}
\ContinuedFloat
\caption{الگوریتم من (ادامه)}
\begin{algorithmic}[1]
\algrestore{M}
\IF {$f_1<fbest$}
\STATE $fbest=f_1$
\STATE $sbest=s_1$
\ENDIF
\ENDWHILE
\end{algorithmic}
\end{algorithm}
\end{document}​