Latex使用algorithm2e包写伪代码

news2024/10/5 21:14:10

用Latex写伪代码我们需要用到一个包,Algorithm2e,这个工具包的使用手册下载地址为(http://mlg.ulb.ac.be/files/algorithm2e.pdf)CSDN的链接为()

准备

导入该包

\usepackage[ruled,linesnumbered]{algorithm2e}
  • ruled 是让标题显示在上面,否则算法的标题则在下面。
  • linesnumbered 让算法中显示行号。

这种选项在使用手册的第四页到第六页

基本语法

代码含义
;行末添加分号并自动换行
\caption{输入信息}插入标题
\KwData{输入信息}Data:输入信息
\KwIn{输出入信息}In:输入信息
\KwOut{输出信息}Out:输出信息
\KwResult{输出信息}Result:输出信息
\For{条件}{循环语句}for 条件 do
        循环语句
endo
\If{条件}{肯定语句}if 条件 do
        肯定语句
end
\while{条件}{循环语句}while 条件 then
        循环语句
end
\tcc{注释}/* 注释 */
\tcp{注释}// 注释
\elf{条件}{肯定语句}{否定语句}if 条件 then
        肯定语句
else
        否定语句
end
  • 除了\If, \Else, \ElseIf之外,还有\uIf, \lIf, \uElse, \lElse, \uElseIf, \lElseIf等命令,他们的区别在于

  • \If, \Else, \ElseIf都是会以end结尾
    \uIf, \uElse, \uElseIf, 是不以end结尾的块级元素
    \lIf, \lElse, \lElseIf 是不以end为结尾的行内元素
    在If-else结构中,\eIf 自带else(即 if 和 else 共用一个 end),而只是用 \If 和 \Else 的话则会多出一个end给Else。

基本语法在手册的第六页到第九页。手册写的真的非常详细。

示例

我们还是从手册上摘抄几个例子

示例一

\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 $<$ \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}\DecMargin{1em}
\end{document}

请添加图片描述

示例二

\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[lined,boxed,commentsnumbered]{algorithm2e}
\usepackage{xeCJK}
\begin{document}
	\begin{algorithm}[H]
		\SetAlgoLined
		\KwResult{怎样使用 algorithm \LaTeX2e }
		
		初始化所有寄存器\;
		\While{永不停止}{
			读取寄存器值\;
			\eIf{寄存器值为1}{
				写日志\;
				跳出循环\;
			}{
				读硬盘\;
			}
		}
	\end{algorithm}
\end{document}

请添加图片描述

其实是一样的,只是部分英文换成了中文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上海亚商投顾:沪指小幅震荡微涨 AI应用端持续活跃

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日走势分化&#xff0c;沪指全天窄幅震荡&#xff0c;创业板指低开低走&#xff0c;盘中一度跌超1.6%&a…

【Java基础】I/O流 —— Java中的流都需要关闭吗?

目录 一、为什么要关闭流&#xff1f;二、close方法和flush方法1.使用close方法2.使用flush方法 三、流按指向分类四、不用关闭的流 一、为什么要关闭流&#xff1f; 涉及到对外部资源的读写操作&#xff0c;包括网络、硬盘等等的I/O流&#xff0c;如果在使用完毕之后不关闭&a…

Unity基础框架从0到1(六)对象池模块

索引 这是Unity基础框架从0到1的第六篇文章&#xff0c;框架系列的项目地址是&#xff1a;https://github.com/tang-xiaolong/SimpleGameFramework 文章最后有目前框架系列的思维导图&#xff0c;前面的文章和对应的视频我一起列到这里&#xff1a; 文章 Unity基础框架从0到…

算力不竭如江海,天翼云“息壤”如何助力千行百业算力智能调度?

科技云报道原创。 数字时代下&#xff0c;算力已成为新型生产力&#xff0c;并朝着多元泛在、安全可靠、绿色低碳的方向演进。以算力为核心的数字信息基础设施&#xff0c;是国家战略性布局的关键组成部分&#xff0c;也成为数字经济时代的“大国重器”。 作为云服务国家队&am…

报表生成器FastReport .Net教程:“Text“对象、文本编辑

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案&#xff0c;使用FastReport .NET可以创建独立于应用程序的.NET报表&#xff0c;同时FastReport .Net支持中文、英语等14种语言&#xff0c;可以让你的产品保证真正的国际性。 FastReport.NET官方版…

es elasticsearch 十四 各种机制 评分机制 正序索引 解决跳跃结果问题 解决耗时过长问题 解决相同属性值都到一个地方

目录 评分机制 机制 查看评分实现如何算出来的explaintrue 分析能否被搜索到 Doc value 正排序索引 Query phase Fetch phase Preference 问题 解决跳跃结果问题 Timeout 到达时间直接返回&#xff0c;解决耗时过长问题 Routing 数据准确分配到某地&#xff0c;解决相…

这才叫软件测试工程师,你那最多是混口饭吃罢了....

前些天和大学室友小聚了一下&#xff0c;喝酒喝大发了&#xff0c;谈天谈地谈人生理想&#xff0c;也谈到了我们各自的发展&#xff0c;感触颇多。曾经找工作我迷茫过、徘徊不&#xff0c;毕业那会我屡屡面试失败&#xff0c;处处碰壁&#xff1b;工作两年后我一度想要升职加薪…

006+limou+C语言“堆的实现”与“树的相关概念”

0.前言 这里是limou3434的一篇个人博文&#xff0c;感兴趣可以看看我的其他内容。本次我给您带来的是树的相关只是&#xff0c;并且把堆这一数据结构做了实现&#xff0c;后面还有大量的oj题目。但是树重点也就在这十多道oj题目中&#xff0c;您可以尝试着自己做一下&#xff…

我的创作纪念日|写在CSDN创作第512天

机缘 今天无意中发现CSDN后台给我发送私信&#xff0c;才发觉原来我的第一篇博客更新已经过去512天了&#xff0c;512天一晃而过居然还有点恍然。 作为一名网络专业的在校大学生&#xff0c;最初开始查找相关的资料其实更习惯于从外站进行查找&#xff0c;却总是在不经意中进入…

人事管理项目-前端实现

人事管理项目-前端实现 引入Element和Axios开发Login页面配置路由配置请求转发启动前端项目 引入Element和Axios 前端UI使用Element&#xff0c;网络请求则使用Axios&#xff0c;因此首先安装Element和Axios依赖&#xff0c;代码如下&#xff1a; 依赖添加成功后&#xff0c;接…

N-propargyloxycarbonyl-L-lysine,1215204-46-8,是一种基于赖氨酸的非天然氨基酸 (UAA)

产品描述&#xff1a; N-ε-propargyloxycarbonyl-L-lysine (H-L-Lys(Poc)-OH) 是一种基于赖氨酸的非天然氨基酸 (UAA)。 广泛用于多种生物体中荧光探针的生物偶联。 N- ε- Propargyloxycarbonyl-L-lysine (H-L-Lys (Poc) - OH) is a non natural amino acid (UAA) based on …

Kotlin Channel系列(一)之读懂Channel每一行源码

文章目录 有话说概述初识ChannelChannel种类Channel五大金刚SendReceiveClosedQueueBuffer Channel的行为Channel源码分析发送数据大动脉接收数据大动脉父类默认实现方式(RendezvousChannel)发送流程send()函数onSend()函数 接收流程receiveCatching()函数onReceiveCatching()函…

基于图像处理的圆检测与深度学习

基于图像处理的圆检测与深度学习 摘 要一、 绪论二 、图像预处理2.1 滤波算法2.2 边缘检测 三 、圆识别与定位算法3.2 定位算法3.2.1 迭代算法 4.1 数据处理 五、深度学习介绍&#xff1a;参考文献 摘 要 本文主要论述在图像处理的的基础上&#xff0c;为了克服图像背景中的亮…

SpringBootWeb案例-2(下)

3. 修改员工 需求&#xff1a;修改员工信息 在进行修改员工信息的时候&#xff0c;我们首先先要根据员工的ID查询员工的信息用于页面回显展示&#xff0c;然后用户修改员工数据之后&#xff0c;点击保存按钮&#xff0c;就可以将修改的数据提交到服务端&#xff0c;保存到数据…

面试专题:java虚拟机(2)

8.垃圾收集有哪些算法&#xff0c;各自的特点&#xff1f; 标记清除 直接将要回收的对象标记&#xff0c;发送gc的时候直接回收&#xff1a;特点回收特别快&#xff0c;但是回收以后会造成 很多不连续的内存空间&#xff0c;因此适合在老年代进行回收&#xff0c;CMS(current…

Linux--ServerProgramming--(4)详解 I/O复用

1. I/O 复用功能 I/O 复用能同时监听多个文件描述符。 I/O 复用本身是阻塞的。 当有多个文件描述符同时就绪时&#xff1a;若不采取额外措施&#xff0c;程序就只能按顺序一次处理其中的每一个文件描述符&#xff0c;这使得服务器程序看起来是串行工作的。若要实现并发&#…

ChatGPT市场营销指南震撼出炉,你错过了?!

ChatGPT是一种基于AI技术的语言模型&#xff0c;它可以与用户进行对话和交互。它被广泛应用于各个领域&#xff0c;包括市场营销。作为一名市场营销人员&#xff0c;您可以使用ChatGPT来获得创意、解决问题和生成内容。 下面是190个ChatGPT提示&#xff0c;可帮助营销人员更好…

oracle自定义函数 for in loop示例

1、新建type&#xff0c;就是返回结果集有什么&#xff0c;这里就写什么&#xff08;相当于表的字段&#xff09; CREATE OR REPLACE TYPE "TYPE_NQ_FORM_STATISTICS" as object (recordid varchar2(500),form_name varchar2(200),sortone varchar2(100),sorttwo …

华为od机试题目回顾

今天去做了华为机试&#xff0c;两道一星题&#xff0c;一道二星题。 一星题 1&#xff1a; 题目主要大意&#xff1a; 输入一串字符串&#xff0c;里面可能包含有(x,y)的坐标。 0<x<1000&#xff0c;0<y<1000&#xff0c;类似(01,1)、(1,01)、(0,100)的都是非法坐…

Java开发手册中为什么不建议在for循环中使用“+“进行字符串操作

场景 java开发手册中对于循环体中进行字符串的拼接要求如下&#xff1a; 【推荐】循环体内&#xff0c;字符串的连接方式&#xff0c;使用 StringBuilder 的 append 方法进行扩展。 说明&#xff1a;下例中&#xff0c;反编译出的字节码文件显示每次循环都会 new 出一个 Str…