LaTeX伪代码编辑

这篇博客展示了如何使用LaTeX环境撰写伪代码,包括算法框架、常用控制结构(如条件判断、循环)的表示方法,并通过归并排序求逆序数的实例详细解释了过程。同时,还提供了多个不同功能的算法示例,如图像分割和处理、数据切片以及神经网络的前向传播和后处理步骤。
摘要由CSDN通过智能技术生成

在线LaTeX伪代码编辑网址https://www.overleaf.com/


在这里插入图片描述


视频讲解


在这里插入图片描述


模板1


模块2


\documentclass[11pt]{article}
\usepackage{CJK}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
\usepackage{amssymb}
 
\floatname{algorithm}{Algorithm}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
 
\begin{document}
\begin{CJK*}{UTF8}{gkai}
%SetUp函数
    \begin{algorithm}
        \caption{算法整体框架}
        \begin{algorithmic}[1] %每行显示行号
        %\Require Input
        %\Ensure Output
        \State $种群 \gets 0$
            \Function {"FuncName"}{}
                %if
                \If {"condition"}  "text"   \EndIf
                \State
                
                % if else
                \If  {"condition"}   "text"   
                \Else   "text"    
                \EndIf\State                
                
                %if  elseif else
                \If  {"condition"}     "text"   
                \ElsIf {"condition"}   "text"       
                \Else   "text"  
                \EndIf\State
                
                %for
                \For{"condition"}   "text"   \EndFor\State
                
                %forall
                \ForAll {"condition"}  "text"  \EndFor\State
                
                %while
                \While {"condition"}  "text"  \EndWhile\State
                
                %repeat
                \Repeat "text"  \Until {"condition"}\State
                
                %loop
                \Loop "text"  \EndLoop\State
                %return
                \Return $Result$
            \EndFunction
 
        \end{algorithmic}
    \end{algorithm}
\end{CJK*}
\end{document}

在这里插入图片描述

\documentclass[11pt]{article}
\usepackage{CJK}
\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{CJK*}{UTF8}{gkai}
    \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{CJK*}
\end{document}

在这里插入图片描述

\documentclass[11pt]{article}
\usepackage{CJK}
\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{CJK*}{UTF8}{gkai}
    \begin{algorithm}
        \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{CJK*}
\end{document}

\documentclass[11pt]{article}
\usepackage{CJK}
\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{CJK*}{UTF8}{gkai}
    \begin{algorithm}
       \caption{test1}
        \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
        \end{algorithmic}
    \end{algorithm}
    
        \begin{algorithm}
           \caption{test2}
        \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
        \end{algorithmic}
    \end{algorithm}
\end{CJK*}
\end{document}

在这里插入图片描述

\documentclass[11pt]{article}
\usepackage{CJK}
\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{CJK*}{UTF8}{gkai}
        \begin{algorithm}
        \begin{algorithmic}[1] %每行显示行号
            \Require $shape$,$window$,$overlap$
            \Ensure $slices.reshape(nx * ny, 4)$
            \Function {MAKEGRID}{$shape, window=512, overlap=0$}
                \State $x,y \gets shape$
                \State $nx \gets x // (window - min_overlap) + 1$
                \State $x1 \gets np.linspace(0, x, num=nx, endpoint=False, dtype=np.int64)$
                \State $x1[-1] \gets x - window$
                \State $x2 \gets  (x1 + window).clip(0, x)$
                \State $ny \gets y // (window - min_overlap) + 1$
                \State $y1 \gets np.linspace(0, y, num=ny, endpoint=False, dtype=np.int64)$
                \State $y1[-1] \gets y - window$
                \State $y2 \gets (y1 + window).clip(0, y)$
                \State $slices \gets np.zeros((nx, ny, 4), dtype=np.int64)$
                \For {$i$ $in$ $range(nx)$}
                    \For {$j$  $in$  $range(ny)$}
                        \State $ slices[i, j] \gets  = x1[i], x2[i], y1[j], y2[j]$
                         \State \Return{$slices.reshape(nx * ny, 4)$}
                    \EndFor
                \EndFor
            \EndFunction
        \end{algorithmic}
    \end{algorithm}
\end{CJK*}
\end{document}

在这里插入图片描述

\documentclass[11pt]{article}
\usepackage{CJK}
\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{CJK*}{UTF8}{gkai}
        \begin{algorithm}
        \begin{algorithmic}[1] %每行显示行号
            \Require $imgpath$
            \Ensure $outputs$
            \Function {SEGMENTATION}{$imgpath$}
                \State $img \gets np.load(imgpath)$
                \State $net \gets UNet3Plus()$
                \State $net.loadstatedict('unet3pmodel.pth')$
                \State $net.eval()$
                \State $outputs \gets net(img)$
                \State \Return{$outputs$}
            \EndFunction
        \end{algorithmic}
    \end{algorithm}
\end{CJK*}
\end{document}

在这里插入图片描述

\documentclass[11pt]{article}
\usepackage{CJK}
\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{CJK*}{UTF8}{gkai}
        \begin{algorithm}
        \begin{algorithmic}[1] %每行显示行号
            \Require $outputs$
            \Ensure $res$
            \Function {IMAGEPOSTPROCESSING}{$outputs$}
                \State $maskPred  \gets  outputs.ge(0.5).cpu().data.numpy()$
                \State $maskPred \gets   maskPred.astype("uint8")$
                \State $maskPredGray \gets maskPred.squeeze() * 255$
                \State $rgbRes \gets maskPredGray.convert( 'RGB')$
                \State $rawImg \gets load("rawImg.jpg")$
                \State $res \gets addImage( rgbRes ,rawImg )$
                \State \Return{$res$}
            \EndFunction
        \end{algorithmic}
    \end{algorithm}
\end{CJK*}
\end{document}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值