1.使用如下宏包
\usepackage[ruled]{algorithm2e} %带竖线
%\usepackage[ruled,vlined]{algorithm2e} %带竖线和折线
%\usepackage[linesnumbered,boxed]{algorithm2e} %方框格式
2.示例代码
\begin{algorithm}
%\SetAlgoLined
%\SetAlgoNoLine %去掉竖线
\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 $<$ \This}{\Union{\Left,\This}}
\lElse{\Union{\This,\Left}} }
\If(\tcp*[f]{O(\Up,\This)==1}){\Up compatible with
\This}{\label{ut}
\lIf{\Up $<$ \This}{\Union{\Up,\This}}
\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}
3.生成效果
3.1. \usepackage[ruled]{algorithm2e}
3.2.\usepackage[ruled,vlined]{algorithm2e}
3.3.\usepackage[linesnumbered,boxed]{algorithm2e}
3.4. \SetAlgoNoLine