您的位置:首页 > 编程语言

latex插入伪代码

2014-05-01 20:02 197 查看
常用的排版伪代码包有clrscode, algorithm, algorithmic, algorithmicx, algorithm2e

(1)clrscode

clrscode 是著名的算法教材 Introduction to Algorithms, 2nd ed. 的作者排版该书时自己制定的。由于我非常喜欢其排版,及写伪代码的风格是跟着这本书学的,所以摒弃了常用的算法排版宏包,而用这个。c l r s 分别是该书四个作者的姓的第一个字母,因此人们常以 clrs 指称该书。该包支持显示行号,加入注释,能够每行 label 及引用。

以下是 Insertion-Sort 算法的 code

1 \begin{codebox}
2 \Procname{$\proc{Insertion-Sort(A)}$}
3 \li \For $j \gets 2$ \To $\id{length}[A]$    \label{li:for}
4 \li     \Do $\id{key} \gets A[j]$            \label{li:for-begin}
5 \li         \Comment Insert $A[j]$ into the sorted sequence $A[1 \twodots j-1]$.
6 \li         $i \gets j-1$
7 \li         \While $i>0$ and $A[i]>\id{key}$ \label{li:while}
8 \li            \Do $A[i+1] \gets A[i]$       \label{li:while-begin}
9 \li                $i \gets i-1$             \label{li:while-end}
10                 \End
11 \li         $A[i+1] \gets \id{key}$          \label{li:for-end}
12         \End
13 \end{codebox}


(2)algorithmic

1 \begin{algorithmic}
2 \REQUIRE $n \geq 0$
3 \ENSURE $y = x^n$
4 \STATE $y \Leftarrow 1$
5 \STATE $X \Leftarrow x$
6 \STATE $N \Leftarrow n$
7 \WHILE{$N \neq 0$}
8 \IF{$N$ is even}
9 \STATE $X \Leftarrow X \times X$
10 \STATE $N \Leftarrow N / 2$
11 \ELSE[$N$ is odd]
12 \STATE $y \Leftarrow y \times X$
13 \STATE $N \Leftarrow N - 1$
14 \ENDIF
15 \ENDWHILE
16 \end{algorithmic}




(3)algorithm





[转] http://blog.sina.com.cn/s/blog_6a4b2dea0100m7gf.html

-------------------------------------

1 \ usepackage { algorithm }
2 \ usepackage { algorithmic }
3
4
5
6 \begin { algorithm }
7 \ caption { Calculate$y = x^n$ }
8 \begin { algorithmic }
9 \REQUIRE $n\geq 0\vee x\neq 0$
10 \ENSURE $y = x^n$
11 \STATE $y\leftarrow 1$
12 \IF { $n < 0$ }
13 \STATE $X\leftarrow 1 / x$
14 \STATE $N\leftarrow -n$
15 \ELSE
16 \STATE $X\leftarrow x$
17 \STATE $N\leftarrow n$
18 \ENDIF
19 \WHILE { $N\neq 0$ }
20 \IF { $N$ is even }
21 \STATE $X\leftarrow X\times X$
22 \STATE $N\leftarrow N / 2$
23 \ELSE [ $N$ is odd ]
24 \STATE $y\leftarrow y\times X$
25 \STATE $N\leftarrow N - 1$
26 \ENDIF
27 \ENDWHILE
28 \end { algorithmic }
29 \end { algorithm } Upload


Here are useful commands:

Single line statements

\STATE <text>

If-statements

\IF {<condition> } <text> \ENDIF

\IF { <condition> } <text> \ELSE <text> \ENDIF

\IF { <condition> } <text> \ELSIF { <condition> } <text> \ELSE<text> \ENDIF

For-loops

There are two forms

\FOR { <condition> } <text> \ENDFOR

\FORALL { <condition> } <text> \ENDFOR

While-loops

\WHILE {<condition> } <text> \ENDWHILE

Repeat until condition

\REPEAT<text> \UNTIL { <condition> }

Infinite loops

\LOOP <text>\ENDLOOP

Precondition

\REQUIRE <text>

Postcondition

\ENSURE<text>

Returning variables

\RETURN <text>

Printing variables

\PRINT<text>

Note: Due to a bug, the algorithmic package is not compatible with hyperref.

[转]http://www.math-linux.com/spip.php?article129
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: