当前位置:   article > 正文

【Latex】算法排版规律(中文排版)_ctex算法伪代码

ctex算法伪代码

参考资料

一、中文排版

1.1 准备工作

  1. 设置字符编码为中文排版
\usepackage[UTF8]{ctex}%%%使用中文
  • 1

UTF8指的是编码包;ctex是参数命令,表示中文排版

%%cetex中提供了四种中文包:ctexart,ctexrep,ctexbook,ctexbeamer对应着article,repoter,book,beamer 具体见:《CTex宏集手册》
在这里插入图片描述

  1. 引入算法包,都写上
\usepackage{algorithm}  
\usepackage{algorithmicx} %或者\usepackage{algorithmic}
\usepackage{algpseudocode}
  • 1
  • 2
  • 3
  • algorithm : 算法的float warpper,类似于table, figure这样的们命令,你可以在你的表格/图形上加一个数字,防止它被分成两页.
  • algorithmicx: 是algorithmic的升级版。事先已经定义好一些常用的命令语句,有如IF,WHILE等。需要注意的是所有命令语句必须大写。此外,(升级版)自定义一些命令。
  1. 算法中可用用到特殊的数学公式或者符号
\usepackage{amsmath,amssymb,amsfonts}
  • 1

举例
在这里插入图片描述
4. 利用\renewcommand可以对系统已有的命令重新定义
英文举例
在这里插入图片描述

  • algorithmicrequirealgorithmic中的原有命令,require意为要求
  • algorithmicensurealgorithmic中的原有命令,ensure意为确保
  • \textbf是字体加粗命令
  • 黄线下标的Input:是新命令的名称
    效果图如下
    在这里插入图片描述
    中文的命令重新定义为
\renewcommand{\algorithmicrequire}{\textbf{输入:}}  
\renewcommand{\algorithmicensure}{\textbf{输出:}}
  • 1
  • 2

1.2 排版

一个栗子

\begin{document}

    \begin{algorithm}  %生成浮动式图
        \caption{DBSCAN 伪代码}  %标题
        % 由algorighmic完成代码的编译部分
        \begin{algorithmic}[1] %[1]表示每行显示行号 ,且由123..排序 
            \Require 点集ps,邻域半径eps,邻域的最小个数MinP.
            \Ensure 簇 cl.
            \For {q in ps} 
            \State 标记q为unvisited(未拜访的)
            \EndFor
            
            \For {q in ps }
               \If {q 的标记为visited 或者 q 属于任意簇}:
               \State 跳过(continue)
               \Else:
                    \If {q 是 cp(核心点)}
                        \State 标记q为visited.且创造一个新簇 cl
                        \For {p 是 q的$\epsilon$的邻域内的点(p $\in n_{\epsilon}(q)$ )}
                        
                              \If {p 的标记为unvisited}
                              \State 将p放入簇cl中
                              \EndIf
                        \EndFor
                    \EndIf
               \EndIf
            \EndFor

           \State Return 簇 cl

    \end{algorithmic}
    \end{algorithm}
    
\end{document}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

图示:

在这里插入图片描述

1.3 循环模块语句的书写

A. For语块

\For{<text1>}
    \State 循环主体
    <body>
\EndFor
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

\ForAll{<text2>}
    \State 循环主体
    <body>
\EndFor
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

\For{$i\gets 1, n$} %%%\gets表示逆箭头
    \State $sum\gets sum+i$ 
\EndFor
  • 1
  • 2
  • 3

在这里插入图片描述

B. While语块

\While{<text1>}
   \State 循环主体,类似于For
    <body>
\EndWhile
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

    \State $sum\gets 0$ (初始设置sumw为0)
    \State $i\gets 1$ (初始设置i为1)
\While{$i\le n$}
    \State $sum\gets sum+i$
    \State $i\gets i+1$
\EndWhile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

C. Repeat语块

\Repeat
    \State 循环主体在前,条件判断在后
    <body>
\Until{<text2>}
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

    \State $sum\gets 0$ (初始设置sumw为0)
    \State $i\gets 1$ (初始设置i为1)
\Repeat
    \State $sum\gets sum+i$
    \State $i\gets i+1$
\Until{$i>n$}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

1.4 条件模块的语句书写

\If{$quality\ge 9$}
    \State $a\gets perfect$
\ElsIf{$quality\ge 7$}
    \State $a\gets good$
\ElsIf{$quality\ge 5$}
    \State $a\gets medium$
\ElsIf{$quality\ge 3$}
    \State $a\gets bad$
\Else
    \State $a\gets unusable$
\EndIf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

1.5 输入输出语句

\Require something
\Ensure something
    \Statex
\State \Call{Create}{10}
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

1.6 Procedure语块

\Procedure{<name>}{<params>}
    <body>
\EndProcedure
  • 1
  • 2
  • 3

其他的见参考资料

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/488900
推荐阅读
相关标签
  

闽ICP备14008679号