目录

用latex写伪代码

个人推荐使用Algorithm2e在$latex$中编写伪代码。

1
\usepackage[ruled, linesnumbered, vlined]{algorithm2e}
  • ruled: 让标题显示在上面,否则算法标题在下面
  • linesnumbered: 让算法中显示行号
  • vlined: 显示代码块的竖线
代码 含义
\; 在行末加分号并换行
\caption{} 插入标题
\SetKwData{命令}{显示值} 设置关键字
\SetKwInOut{命令}{显示值} 设置关键字
\SetKwFunction{命令}{显示值} 设置关键字
\for{条件}{循环语句} for 条件 do
\if{条件}{语句} if
\while{条件}{循环语句} while
\tcc{注释} /* 注释 */
\tcp{注释} // 注释
\eif{条件}{肯定语句}{否定语句} if 条件 then 肯定语句 else 否定语句 end
\BlankLine 空行
\leftarrow

1.通常开始时:给出算法的输出输出(或者Data和Result) 2.空一行,列出一些初始化操作 3.算法主体

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
\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 $<$ \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}

算法示例

Комментарии