Latex 插入伪代码

在周志华的《机器学习》一书中经常有伪代码
于是今天研究了一下怎么使用Latex写出伪代码
这是《机器学习》第74页的伪代码的Latex代码

\documentclass[11pt,UTF8]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
\usepackage{amssymb}%空集符号

\floatname{algorithm}{机器学习算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}
\begin{document}
		\begin{algorithm}
			\caption{决策树学习基本算法}
			\begin{algorithmic}[1] %显示行号,1是每行都显示
				\Require 训练集$D=\left\{(\mathbf{x}_1,y_1),(\mathbf{x}_1,y_1),\dots,(\mathbf{x}_m,y_m)\right\};$
				属性集$A=\left\{(a_1,a_2,\dots,a_d)\right\}$
				\Ensure$node$为根节点的一棵决策树
				\Function {$TreeGenerate$}{$D, A$}
				\State 生成节点$node$
				\If {$D$中的样本全属于同一类别$C$}
				\State$node$标记为$C$类叶节点;\Return
				\EndIf
				\If {$A=\varnothing$ $\textbf{OR}$ $D$中样本再$A$上取值相同}
				\State$node$标记为叶节点,其类别标记为$D$中样本类最多的类;\Return
				\EndIf
				\State$A$中选择最优划分属性$a_*$
				\For {$a_*$的每一个值$a_*^v$}
				\State$node$生成一个分支;令$D_v$表$D$中$a_*$上取值为$a_*^v$的样本子集;
			    \If{$D_v$为空}
				将分支节点标记为叶节点,其类别标记为$D$中样本最多的类;\Return 
				\Else{ 以\Call{$TreeGenerate$}{$D_v, A\backslash\{a_*\}$}为分支节点}
				\EndIf
				\EndFor
				\EndFunction
			\end{algorithmic}
		\end{algorithm}
\end{document}

输出结果:
Latex 插入伪代码_第1张图片

你可能感兴趣的:(LaTeX)