在计算机科学当中,论文当中经常需要排版算法。相信大家在读论文中也看见了很多排版精美的算法。本文就通过示例来简要介绍一下 algorithms 束的用法。该束主要提供了两个宏包,包含两种进行算法排版的环境,algorithm 和 algorithmic 。

这两个宏包是被设计成同时一起使用的,但也可以根据用户的特殊需要分开使用。其中 algorithm 宏包主要是为算法提供一个浮动体环境,也就是说,在 LaTeX 中算法和图像,表一样,都是浮动体。algorithmic 宏包主要是用来完成算法的描述功能,该宏包提供了我们描述算法常用的几种结构命令,如条件结构、循环结构等。下面我们就通过示例来对 algorithm 的使用进行讲解。

Algorithmic  环境

Algorithmic 宏包,为描述算法提供了程序设计中的所有常用结构的表示,如:判断 (IF) ,循环  (WHILE, FOR, LOOP), 输入(REQUIRE) ,输出(ENSURE)等。在这里需要注意的是,所有 algorithmic 提供的命令都是全大写。下面,我们通过一个简单程序的算法,来将所有的算法描述都用上。通过求从1到n的整数和的算法实例来说明 algorithmic 语法。

TeX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\begin{algorithmic}
\REQUIRE $n \geq 1$                  %输入条件
\ENSURE $Sum = 1 + \cdots + n$       %输出
\STATE $Sum \leftarrow 0$            %\STATE 命名演示
\IF {$n < 1$}                        %条件语句
\PRINT {Input Errow}                 %打印语句
\ELSE
    \FOR {$i = 0$ to n}          %FOR循环结构
    \STATE $Sum = Sum + i$\\
    \STATE $i = i + 1$
    \ENDFOR
\ENDIF
\RETURN Sum
\end{algorithmic}

以上就是一个算法的示例了其生成文档效果如图所示

这里用的 REQUIRE 命令和 ENSURE 命令和我们日常用的有不同,我们还可以使用重定义命令,将输出变味我们常见的 Input 和 Output 形式,下面是命令:

TeX

1
2
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

Algorithm 环境

Algorithm 环境主要作用是将代码段变成浮动体,浮动体一方面能防止代码超出页面范围,另外一方面也方面最后生成和图表目录相似的算法列表目录。也能通过标记,方便在文章其它地方引用。还是以上面的例子为例

TeX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
\begin{algorithm}
\caption{计算从1到n的和}              %标题
\label{alg1}                        %标记算法,方便在其它地方引用
\begin{algorithmic}
\REQUIRE$n
\geq 1$                  %输入条件
\ENSURE$Sum
= 1 + \cdots + n$      %输出
\STATE$Sum
\leftarrow 0$            %\STATE
命名演示
\IF{$n
< 1$}                        %条件语句
\PRINT{InputErrow}                %打印语句
\ELSE
    \FOR{$i
= 0$ton}          %FOR循环结构
    \STATE$Sum
= Sum + i$\\
    \STATE$i
= i + 1$
    \ENDFOR
\ENDIF
\RETURNSum
\end{algorithmic}
\end{algorithm}

该断代码生成文档如下图


Latex 算法Algorithm的更多相关文章

  1. Latex 算法过长 分页显示方法

    参考: Algorithm tag and page break Latex 算法过长 分页显示方法 1.引用algorithm包: 2.在\begin{document}前加上以下Latex代码: ...

  2. latex算法步骤如何去掉序号

    想去掉latex算法步骤前面的序号,如下 我想去掉每个算法步骤前面的数字序号,1,2,3,因为我已经写了step.我们只需要引用a lgorithmic这个包就可以了,代码如下: \usepackag ...

  3. 数据结构(DataStructure)与算法(Algorithm)、STL应用

    catalogue . 引论 . 数据结构的概念 . 逻辑结构实例 2.1 堆栈 2.2 队列 2.3 树形结构 二叉树 . 物理结构实例 3.1 链表 单向线性链表 单向循环链表 双向线性链表 双向 ...

  4. LaTeX 算法代码排版 --latex2e范例总结

    LaTeX 写作: 算法代码排版 --latex2e范例总结 latex2e 宏包的使用范例: \usepackage[ruled]{algorithm2e}                     ...

  5. Latex算法伪代码使用总结

    Latex伪代码使用总结 algorithmicx例子 相应代码: \documentclass[11pt]{ctexart} \usepackage[top=2cm, bottom=2cm, lef ...

  6. LaTeX算法排版 笔记

    方式一 需要包含的 \usepackage[noend]{algpseudocode} \usepackage{algorithmicx,algorithm} 源码 \begin{algorithm} ...

  7. 1.4 算法 - algorithm

    1)概述 2)示例 //algorithm find演示 #include <vector> #include <algorithm> #include <iostrea ...

  8. LaTeX算法排版

    需要包含的 \usepackage[noend]{algpseudocode} \usepackage{algorithmicx,algorithm} 源码 \begin{algorithm}[t]\ ...

  9. [LaTeX] box algorithm adjustbox subfigures, textwidth

    algorithm \begin{figure}[!t] \vspace*{\dimexpr\fboxsep+\fboxrule} \fbox{% \parbox{\dimexpr\linewidth ...

随机推荐

  1. FieldGroup绑定的日期类型存储格式的问题

    问题 日期存储的时候,当前数据库中存储格式为 "2017-9-5 0:00:00", 而我实现了以后,看到数据库的存储格式为 "Mon Sep 04 00:00:00 C ...

  2. String的实例化与static final修饰符

    String两种实例化方式 一种是通过双引号直接赋值的方式,另外一种是使用标准的new调用构造方法完成实例化.如下: String str = "abcd"; String str ...

  3. Windows Server 脚本记录Apache、Mysql 每分钟并发数

    打开windows server 计划任务管理器.定时执行如下的Bat脚本即可. 在D盘新建一个monitor文件夹,创建ApacheMysql.bat文件.内容如下: 在monitor文件夹中新建m ...

  4. 自学Linux Shell3.2-切换目录命令cd

    点击返回 自学Linux命令行与Shell脚本之路 3.2-切换目录命令cd 当登录系统并获得shell命令提示符后,你通常位于自己的主目录中. 使用pwd命令验证: pwd命令以绝对路径的方式显示用 ...

  5. 自学Zabbix11.2 Zabbix SNMP安装

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.2 Zabbix SNMP安装 1. yum安装snmp 1 # yum i ...

  6. CRM 2013 生成自动编号

    1. 建立二个实体: 单据规则: 用于创建单据的规则 规则流水号: 用于记录当前的流水号   2. 创建规则: 创建一条相关的记录后,就会显示对应的流水号:   最终效果:

  7. luogu1514 [NOIp2010]引水入城 (bfs+记忆化搜索)

    我们先bfs一下看看是否能到最底下的所有点 如果不能的话,直接把不能到的那几个数一数就行了 如果能的话: 可以发现(并不可以)某格能到达的最底下的格子一定是一个连续的区间 (因为如果不连续的话,我们先 ...

  8. cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例

    cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...

  9. Luogu 1312 【NOIP2011】玛雅游戏 (搜索)

    Luogu 1312 [NOIP2011]玛雅游戏 (搜索) Description Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空 ...

  10. dedecms获取顶级栏目名称、二级栏目名称实现方法 转

    织梦DEDECMS文章.栏目页获取当前页面顶级栏目名称的方法 在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name='typename' /} ...