\def\SetClass{article}\documentclass{\SetClass}\usepackage[lined,boxed,commentsnumbered]{algorithm2e}\begin{document}\begin{algorithm}[H] \SetAlgoLined \KwData{this text} \KwResult{how to write algorithm with \LaTeX2e } initialization\; \While{not at end of this document}{ read current\; \eIf{understand}{ go to next section\; current section becomes this one\; }{ go back to the beginning of current section\; } } \caption{How to write algorithms}\end{algorithm}\end{document}
例子2
现在,我们在输入输出中间加一点点间隔,然后给算法的某些行进行强调,再给if条件加上注释呢
\def\SetClass{article}\documentclass{\SetClass}\usepackage[linesnumbered,lined,boxed,commentsnumbered]{algorithm2e}\begin{document}\IncMargin{1em}\begin{algorithm} \SetKwData{Left}{left}\SetKwData{This}{this}\SetKwData{Up}{up} \SetKwFunction{Union}{Union}\SetKwFunction{FindCompress}{FindCompress} \SetKwInOut{Input}{input}\SetKwInOut{Output}{output} \Input{A bitmap $Im$ of size $w\times l$} \Output{A partition of the bitmap} \BlankLine \emph{special treatment of the first line}\; \For{$i\leftarrow 2$ \KwTo $l$}{ \emph{special treatment of the first element of line $i$}\; \For{$j\leftarrow 2$ \KwTo $w$}{\label{forins} \Left$\leftarrow$ \FindCompress{$Im[i,j-1]$}\; \Up$\leftarrow$ \FindCompress{$Im[i-1,]$}\; \This$\leftarrow$ \FindCompress{$Im[i,j]$}\; \If(\tcp*[h]{O(\Left,\This)==1}){\Left compatible with \This}{\label{lt} \lIf{\Left $ \lElse{\Union{\This,\Left}} } \If(\tcp*[f]{O(\Up,\This)==1}){\Up compatible with \This}{\label{ut} \lIf{\Up $ \tcp{\This is put under \Up to keep tree as flat as possible}\label{cmt} \lElse{\Union{\This,\Up}}\tcp*[h]{\This linked to \Up}\label{lelse} } } \lForEach{element $e$ of the line $i$}{\FindCompress{p}} } \caption{disjoint decomposition}\label{algo_disjdecomp}\end{algorithm}\DecMargin{1em}\end{document}
例子3
实际上,咱们用的最多的格式(论文里常见)就还是这种:
\def\SetClass{article}\documentclass{\SetClass}\usepackage[ruled,linesnumbered]{algorithm2e}\begin{document}\begin{algorithm}\caption{Simulation-optimization heuristic}\label{algorithm}\KwData{current period $t$, initial inventory $I_{t-1}$, initial capital $B_{t-1}$, demand samples}\KwResult{Optimal order quantity $Q^{\ast}_{t}$}$r\leftarrow t$\;$\Delta B^{\ast}\leftarrow -\infty$\;\While{$\Delta B\leq \Delta B^{\ast}$ and $r\leq T$}{$Q\leftarrow\arg\max_{Q\geq 0}\Delta B^{Q}_{t,r}(I_{t-1},B_{t-1})$\;$\Delta B\leftarrow \Delta B^{Q}_{t,r}(I_{t-1},B_{t-1})/(r-t+1)$\;\If{$\Delta B\geq \Delta B^{\ast}$}{$Q^{\ast}\leftarrow Q$\;$\Delta B^{\ast}\leftarrow \Delta B$\;}$r\leftarrow r+1$\;}\end{algorithm}\end{document}
\documentclass{article}\usepackage[linesnumbered, ruled]{algorithm2e}\SetKwRepeat{Do}{do}{while}%\begin{document}\begin{algorithm}[H] \KwData{this text} \KwResult{how to write algorithm with \LaTeX2e } initialization\; \While{not at end of this document}{ read current\; \Repeat{this end condition}{ do these things\; } \eIf{understand}{ go to next section\; current section becomes this one\; }{ go back to the beginning of current section\; } \Do{this end condition}{ do these things\; } } \caption{How to write algorithms}\end{algorithm}\end{document}