使用Latex编辑算法伪代码

参考文档下载:Latex算法包


\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 $dest History$数组,历史目的寄存器;$src History$数组,历史源寄存器
            %\Ensure 逆序数
            \Function {DataHazard}{$Instruction, InstrNum$}
                \State $i\gets 0$
                \State $j\gets 0$
                \State $k\gets 0$
                \State $p\gets 0$
                 \For{$p = 0 \to InstrNum-1$}
                    \State $dest,src1,src2 \gets Extract(Instruction[p])$
					\If{$dest\ \textbf{in}\ destHistory$}
                        \State $WAW[i++].reg\gets dest$
						\State $WAW[i++].order\gets destHistory.index(dest)$
                    \EndIf
					\If{$dest\ \textbf{in}\ srcHistory$}
                        \State $WAR[j++].reg\gets dest$
						\State $WAR[j++].order\gets srcHistory.index(dest)$
                    \EndIf
					\If{$src1\ \textbf{in}\ destHistory$}
                        \State $RAW[k++].reg\gets src1$
						\State $RAW[k++].order\gets destHistory.index(src1)$
                    \EndIf
					\If{$src2!=null\ \textbf{and}\ src2\ in\ destHistory$}
                        \State $RAW[k++].reg\gets src2$
						\State $RAW[k++].order\gets destHistory.index(src2)$
                    \EndIf
					\State $destHistory.append(dest)$
					\State $srcHistory.append(src1)$
					\State $srcHistory.append(src2)$
                \EndFor
                \State \Return{$\&WAW,\&WAR,\&RAW$}
            \EndFunction
        \end{algorithmic}
    \end{algorithm}
\end{CJK*}
\end{document}


以上代码编译后的效果如下所示:
使用Latex编辑算法伪代码_第1张图片

你可能感兴趣的:(latex)