Latex写算法的伪代码排版

一、algorithmicx例子

代码:

\documentclass[11pt]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}\begin{document}\begin{algorithm}\caption{用归并排序求逆序数}\begin{algorithmic}[1] %每行显示行号\Require $Array$数组,$n$数组大小\Ensure 逆序数\Function {MergerSort}{$Array, left, right$}\State $result \gets 0$\If {$left < right$}\State $middle \gets (left + right) / 2$\State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$}\State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$}\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$}\EndIf\State \Return{$result$}\EndFunction\State\Function{Merger}{$Array, left, middle, right$}\State $i\gets left$\State $j\gets middle$\State $k\gets 0$\State $result \gets 0$\While{$i<middle$ \textbf{and} $j<right$}\If{$Array[i]<Array[j]$}\State $B[k++]\gets Array[i++]$\Else\State $B[k++] \gets Array[j++]$\State $result \gets result + (middle - i)$\EndIf\EndWhile\While{$i<middle$}\State $B[k++] \gets Array[i++]$\EndWhile\While{$j<right$}\State $B[k++] \gets Array[j++]$\EndWhile\For{$i = 0 \to k-1$}\State $Array[left + i] \gets B[i]$\EndFor\State \Return{$result$}\EndFunction\end{algorithmic}\end{algorithm}
\end{document}

效果:

二、algorithm例子

前期准备:

\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{amsmath}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}  % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm

代码1:

  \begin{algorithm}[htb]\caption{ Framework of ensemble learning for our system.}\label{alg:Framwork}\begin{algorithmic}[1]\RequireThe set of positive samples for current batch, $P_n$;The set of unlabelled samples for current batch, $U_n$;Ensemble of classifiers on former batches, $E_{n-1}$;\EnsureEnsemble of classifiers on the current batch, $E_n$;\State Extracting the set of reliable negative and/or positive samples $T_n$ from $U_n$ with help of $P_n$;\label{code:fram:extract}\State Training ensemble of classifiers $E$ on $T_n \cup P_n$, with help of data in former batches;\label{code:fram:trainbase}\State $E_n=E_{n-1}cup E$;\label{code:fram:add}\State Classifying samples in $U_n-T_n$ by $E_n$;\label{code:fram:classify}\State Deleting some weak classifiers in $E_n$ so as to keep the capacity of $E_n$;\label{code:fram:select} \\\Return $E_n$;\end{algorithmic}
\end{algorithm}

效果:

代码2:

\begin{algorithm}[h]\caption{An example for format For \& While Loop in Algorithm}\begin{algorithmic}[1]\For{each $i\in [1,9]$}\State initialize a tree $T_{i}$ with only a leaf (the root);\State $T=T\cup T_{i};$\EndFor\ForAll {$c$ such that $c\in RecentMBatch(E_{n-1})$}\label{code:TrainBase:getc}\State $T=T\cup PosSample(c)$;\label{code:TrainBase:pos}\EndFor;\For{$i=1$; $i<n$; $i++$ }\State $//$ Your source here;\EndFor\For{$i=1$ to $n$}\State $//$ Your source here;\EndFor\State $//$ Reusing recent base classifiers.\label{code:recentStart}\While {$(|E_n| \leq L_1 )and( D \neq \phi)$}\State Selecting the most recent classifier $c_i$ from $D$;\State $D=D-c_i$;\State $E_n=E_n+c_i$;\EndWhile\label{code:recentEnd}\end{algorithmic}
\end{algorithm}

效果:

代码3:

\begin{algorithm}[h]\caption{Conjugate Gradient Algorithm with Dynamic Step-Size Control}\label{alg::conjugateGradient}\begin{algorithmic}[1]\Require$f(x)$: objective funtion;$x_0$: initial solution;$s$: step size;\Ensureoptimal $x^{*}$\State initial $g_0=0$ and $d_0=0$;\Repeat\State compute gradient directions $g_k=\bigtriangledown f(x_k)$;\State compute Polak-Ribiere parameter $\beta_k=\frac{g_k^{T}(g_k-g_{k-1})}{\parallel g_{k-1} \parallel^{2}}$;\State compute the conjugate directions $d_k=-g_k+\beta_k d_{k-1}$;\State compute the step size $\alpha_k=s/\parallel d_k \parallel_{2}$;\Until{($f(x_k)>f(x_{k-1})$)}\end{algorithmic}
\end{algorithm}

效果:

代码4:

\makeatletter
\def\BState{\State\hskip-\ALG@thistlm}
\makeatother
\begin{algorithm}
\caption{My algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{MyProcedure}{}
\State $\textit{stringlen} \gets \text{length of }\textit{string}$
\State $i \gets \textit{patlen}$
\BState \emph{top}:
\If {$i > \textit{stringlen}$} \Return false
\EndIf
\State $j \gets \textit{patlen}$
\BState \emph{loop}:
\If {$\textit{string}(i) = \textit{path}(j)$}
\State $j \gets j-1$.
\State $i \gets i-1$.
\State \textbf{goto} \emph{loop}.
\State \textbf{close};
\EndIf
\State $i \gets i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$.
\State \textbf{goto} \emph{top}.
\EndProcedure
\end{algorithmic}
\end{algorithm}

效果:

三、algorithm2e例子

algorithm2e包可能会与其它包产生冲突,一个常见的错误提示是“Too many }'...”。为了解决这个问题,要在引入algorithm2e包之前加入下面的命令:

\makeatletter
\newif\if@restonecol
\makeatother
\let\algorithm\relax
\let\endalgorithm\relax

前期准备:

\makeatletter
\newif\if@restonecol
\makeatother
\let\algorithm\relax
\let\endalgorithm\relax
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}%[ruled,vlined]{
\usepackage{algpseudocode}
\usepackage{amsmath}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}  % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}} % Use Output in the format of Algorithm 

代码1:

\begin{algorithm}\caption{identify Row Context}\KwIn{$r_i$, $Backgrd(T_i)$=${T_1,T_2,\ldots ,T_n}$ and similarity threshold $\theta_r$}\KwOut{$con(r_i)$}$con(r_i)= \Phi$\;\For{$j=1;j \le n;j \ne i$}{float $maxSim=0$\;$r^{maxSim}=null$\;\While{not end of $T_j$}{compute Jaro($r_i,r_m$)($r_m\in T_j$)\;\If{$(Jaro(r_i,r_m) \ge \theta_r)\wedge (Jaro(r_i,r_m)\ge r^{maxSim})$}{replace $r^{maxSim}$ with $r_m$\;}}$con(r_i)=con(r_i)\cup {r^{maxSim}}$\;}return $con(r_i)$\;
\end{algorithm}

效果:

代码2:

\begin{algorithm}
\caption{Service checkpoint image storage node and routing path selection}
\LinesNumbered
\KwIn{host server $PM_s$ that $SerImg_k$ is fetched from, $subnet_s$ that $PM_s$ belongs to, $pod_s$ that $PM_s$ belongs to}
\KwOut{Service image storage server $storageserver$,and the image transfer path $path$}
$storageserver$ = Storage node selection($PM_s$, $SerImg_k$,$subnet_s$,$pod_s$)\;
\If{ $storageserver$ $\neq$ null}
{select a path from $storageserver$ to $PM_s$ and assign the path to $path$\;
}\textbf{final} \;
\textbf{return} $storageserver$ and $path$;
\end{algorithm}

效果:

代码3:

\begin{algorithm}
\caption{Storage node selection}
\LinesNumbered
\KwIn{host server $PM_s$ that the checkpoint image $Img$ is fetched from, $subnet_s$ that $PM_s$ belongs to, $pod_s$ that $PM_s$ belongs to}
\KwOut{Image storage server $storageserver$}\For{ each host server $PM_i$ in the same subnet with $PM_s$ }
{\If{ $PM_i$ is not a service providing node or checkpoint image storage node of $S_k$ }{add $PM_i$ to $candidateList$ \;}
}
sort $candidateList$ by reliability desc\;
init $storageserver$ ;
\For{ each $PM_k$ in $candidateList$}
{\If{ $SP(PM_k)$ $\geq$ $E(SP)$ of $pod_i$ and $BM_k$ $\le$ size of $Img$ }{assign $PM_k$ to $storageserver$\;goto final\;}
}
clear $candidateList$\;
add all other subnets in $pod_s$ to $netList$\;
\For{ each subnet $subnet_j$ in $netList$}
{clear $candidateList$\;\For {each $PM_i$ in $subnet_j$ }{\If{ $PM_i$ is not a service providing node or checkpoint image storage node of $S_k$ }{add $PM_i$ to $candidateList$\;}}sort all host in $candidateList$ by reliability desc\;\For{ each $PM_k$ in $candidateList$}{\If{$SP(PM_k)$ $\geq$ $E(SP)$ of $pod_i$ and $BM_k$ $\le$ size of $Img$}{assign $PM_k$ to $storageserver$ \;goto final\;}}
}
\textbf{final} \;
\textbf{return} $storageserver$;
\end{algorithm}

效果:

代码4:

\begin{algorithm}
\caption{Delta checkpoint image storage node and routing path selection}
\LinesNumbered
\KwIn{host server $PM_s$ that generates the delta checkpoint image $DImg_{kt}$, $subnet_s$ that $PM_s$ belongs to, $pod_s$ that $PM_s$ belongs to}
\KwOut{Delta image storage server $storageserver$,and the image transfer path $Path$}
$storageserver$ = Storage node selection($PM_s$, $DImg_{kt}$,$subnet_s$,$pod_s$)\;
\If{ $storageserver$ $\equiv$ null}
{the delta checkpoint image is stored in the central storage server\;goto final\;
}
construct weighted topological graph $graph_s$ of $pod_s$\;
calculate the shortest path from $storageserver$ to $PM_s$ in $graph_s$ by using the Dijkstra algorithm\;
\textbf{final} \;
\textbf{return} $storageserver$ and $path$;
\end{algorithm}

效果:

代码5:

\documentclass[8pt,twocolumn]{ctexart}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{textcomp} %命令\textacutedbl的包,二阶导符号% Page length commands go here in the preamble
\setlength{\oddsidemargin}{-0.25in} % Left margin of 1 in + 0 in = 1 in
\setlength{\textwidth}{9in}   % 纸张宽度Right margin of 8.5 in - 1 in - 6.5 in = 1 in
\setlength{\topmargin}{-.75in}  % Top margin of 2 in -0.75 in = 1 in
\setlength{\textheight}{9.2in}  % Lower margin of 11 in - 9 in - 1 in = 1 in
\setlength{\parindent}{0in}\makeatletter
\newif\if@restonecol
\makeatother
\let\algorithm\relax
\let\endalgorithm\relax
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}%[ruled,vlined]{
\usepackage{algpseudocode}
\renewcommand{\algorithmicrequire}{\textbf{Input:}} 
\renewcommand{\algorithmicensure}{\textbf{Output:}} \begin{document}\begin{algorithm}
\caption{component matrices computing}
\LinesNumbered
\KwIn{$\mathcal{X}\in\mathbb{R}^{l_1\times l_2\times\cdots\times l_N},\varepsilon,\lambda,\delta,R$}
\KwOut{$A^{(j)}s$ for $j=1$ to $N$}
\textbf{Initialize} all $A^{(j)}s$ //which can be seen as the $0^{th}$ round iterations\;{$l$\hspace*{-1pt}\textacutedbl}$=L$ //if we need to judge whether $(11)$ is true then {$l$\hspace*{-1pt}\textacutedbl} denotes $L|_{t-1}$\;\For{ each $A_{i_jr}^{<!-- -->{j}}(1\le j\le N,1\le i_j\le I_j,1\le r\le R)$ }
{//$1^{st}$ round iterations\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)}$\;$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)}$//if the rollback shown as $(12)$ is needed,$A_{i_jr}^{(j)'}$ denotes $A_{i_jr}^{(j)}|_{t-1}$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;
}\Repeat(//other rounds of iterations for computing component matrices){$\bm{L\le \varepsilon}$ or maximum iterations exhausted}
{$l'=L$ //if we need to judge whether $(11)$ is true then $l'$ denotes $L|_t$\;\For{ each $A_{i_jr}^{<!-- -->{j}}(1\le j\le N,1\le i_j\le I_j,1\le r\le R)$}{\If{$g_{i_jr}^{(j)}\cdot g_{i_jr}^{(j)'}>0$}{$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\;$\delta_{i_jr}^{(j)}=\bm{\min}\left(\delta_{i_jr}^{(j)}\cdot\eta^{+},Max\_Step\_Size\right)$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;}\ElseIf{$g_{i_jr}^{(j)}\cdot g_{i_jr}^{(j)'}<0$}{\If{$l'>l$\hspace*{-1pt}\textacutedbl}{$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)}$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)'}$// if $(11)$ is true then rollback as $(12)$\;$\delta_{i_jr}^{(j)}=\bm{\max}\left(\delta_{i_jr}^{(j)}\times\eta^{-},Min\_Step\_Size\right)$\;}\Else{$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\;$\delta_{i_jr}^{(j)}=\bm{\max}\left(\delta_{i_jr}^{(j)}\cdot\eta^{-},Min\_Step\_Size\right)$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;}}\Else{$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;}}$l$\hspace*{-1pt}\textacutedbl$=l'$\;
}
\end{algorithm}
\end{document}

效果:

代码6:

\usepackage[ruled,linesnumbered]{algorithm2e}
\usepackage{amsmath}\begin{algorithm}\caption{Learning algorithm of R2P}\label{alg:r2p}\KwIn{ratings $R$, joint demographic representations $Y$,learning rate $\eta$,maximum iterative number $maxIter$, negative sampling number $k$\;}\KwOut{interaction matrix $\bm{W}$, movie vectors $V$\;}Initialize $\bm{W},V$ randomly\;$t = 0$\;For convenience, define $\vec{\varphi}_n = \sum_{m\in S_n}r_{m,n}\vec{v}_m$\; %\varphi_n\bm{W}\vec{y}_n\While{not converged \rm{or} $t>maxIter$}{t = t+1\;\For{$n=1;n \le N;n++$}{$\bm{W} = \bm{W}+\eta\big(1-\sigma\left(\vec{\varphi}_n^T\bm{W}\vec{y}_n\right)\big)\vec{\varphi}_n\vec{y}_n^T$\;\label{algline:W}\For{$m\in S_n$}{$\vec{v}_m=\vec{v}_m+ \eta\left(1-\sigma\left(\vec{\varphi}_n^T\bm{W}\vec{y}_n\right)\right)r_{m,n}\bm{W}\vec{y}_n$\;\label{algline:V}}\For{$i=1;i\le k;i++$}{sample negative sample $\vec{y}_i$ from $P_n$\;$\bm{W} = \bm{W}-\eta\big(1-\sigma\left(-\vec{\varphi}_n^T\bm{W}\vec{y}_n\right)\big)\vec{\varphi}_n\vec{y}_i^T$\;\For{$m\in S_n$}{$\vec{v}_m=\vec{v}_m- \eta\left(1-\sigma\left(-\vec{\varphi}_n^T\bm{W}\vec{y}_n\right)\right)r_{m,n}\bm{W}\vec{y}_i$\;}}}$\bm{W} = \bm{W}-2\lambda\eta\bm{W}$\;$V=V-2\lambda\eta V$}return $\bm{W},V$\;%\end{algorithmic}
\end{algorithm}

效果:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux常用指令

前言 大家好我是jiantaoyab&#xff0c;这篇文章给大家介绍Linux下常用的命令。 指令的本质也是Linux上的一些程序。 cd cd - 回到最近从哪来的路径 cd ~ 当前用户对应的工作目录&#xff08;普通用户&#xff1a;/home/xx root用户&#xff1a;/root&#xff09; cd / 去…

腾讯云Kubernetes的容器服务平台TKE以及函数计算服务云感受

目录 一、整体结构 二、内容深度 三、技术实用性 一、容器技术 1. 腾讯自身 2. 美团 二、函数计算技术 1. 滴滴出行 2. 小红书 实际应用 容器技术实践示例 函数计算技术实践示例 高级技术探讨示例 书中感受 这边文章是对《2023腾讯云容器和函数计算技术实践精选集…

vLLM:给大模型提提速

vLLM&#xff1a;给大模型提提速 提出背景迭代级调度细粒度批处理机制PagedAttention算法、KV缓存管理器、分布式执行 提出背景 论文&#xff1a;https://dl.acm.org/doi/pdf/10.1145/3600006.3613165 代码&#xff1a;https://github.com/vllm-project/vllm 文档&#xff1…

面试算法-48-二叉树的锯齿形层序遍历

题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,…

电话机器人语音识别用哪家更好精准度更高。

语音识别系统的选择取决于你的具体需求&#xff0c;包括但不限于识别精度、速度、易用性、价格等因素。以下是一些在语音识别领域表现较好的公司和产品&#xff1a; 科大讯飞&#xff1a;科大讯飞是中国最大的语音识别技术提供商之一&#xff0c;其语音识别技术被广泛应用于各…

ASP.NET通过Appliaction和Session统计在人数和历史访问量

目录 背景: Appliaction&#xff1a; Session&#xff1a; 过程&#xff1a; 数据库&#xff1a; Application_Start&#xff1a; Session_Start&#xff1a; Session_End&#xff1a; Application_End&#xff1a; 背景: 事件何时激发Application_Start在调用当前应用…

VSCode创建用户代码片段-案例demo

示例 - 在线生成代码片段 Vue3代码片段 {"vue3": {scope": "javascript,typescript,html,vue","prefix": "vue3","body": ["<template>","$1","</template>",""…

到底什么时候该使用MongoDB

NoSQL是什么 NoSQL &#xff1a; Not Only SQL , 本质也是一种数据库的技术&#xff0c;相对于传统数据库技术&#xff0c;它不会遵循一些约束&#xff0c;比如 &#xff1a; sql 标准、 ACID 属性&#xff0c;表结构等。 NoSQL分类 类型应用场景典型产品Key-value存储缓存&…

算法第三十天-矩阵中移动的最大次数

矩阵中移动的最大次数 题目要求 解题思路 网格图 DFS 从第一列的任一单元格 ( i , 0 ) (i,0) (i,0) 开始递归。枚举往右上/右/右下三个方向走&#xff0c;如果走一步后&#xff0c;没有出界&#xff0c;且格子值大于 g r i d [ i ] [ j ] grid[i][j] grid[i][j]&#xff0c;则…

车载电子电器架构 - 网络拓扑

车载电子电器架构 - 网络拓扑 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

Unity InputField实现框自适应内容简便方法

要实现InputField框自适应输入内容&#xff0c;除了通过代码进行处理&#xff0c;还可以是使用以下简便的方法。 1、创建InputField组件&#xff1a;右键->UI->Input Field -TextMeshPro。 2、把Input Field Settings中的Line Type设置为Multi Line Newline模式&#x…

自然语言处理: 第十七章RAG的评估技术RAGAS

论文地址&#xff1a;[2309.15217] RAGAS: Automated Evaluation of Retrieval Augmented Generation (arxiv.org) 项目地址: explodinggradients/ragas: Evaluation framework for your Retrieval Augmented Generation (RAG) pipelines (github.com) 上一篇文章主要介绍了R…