算法 - 格式化

算法 - 格式化

我需要一些帮助来格式化我的算法。到目前为止,我得到的是:

\documentclass[9pt]{sig-alternate}
\usepackage[linesnumbered,ruled]{algorithm2e}
\begin{document}
\begin{algorithm}
\SetAlgoNoLine
 \KwData{The original list \textbf{R}, $ N \leq n $}
 \KwResult{The re-ranked list \textbf{S}}
 S = <>\;
 \While{ |S| < N }  {\do  {$i^{*} = argmax_{i\in R\setminus S} f_{obj}(i,S,u)$   \;
     S = S $ \circ i^{*}$\;
     R = R $ \setminus {i^{*}}$  \;
    \Return{S}\;
}
\
}
\caption{The greedy strategy.}
\label{Algorithm1}
\end{algorithm}

\end{document}

我正在使用algorithm2e带有选项linesnumbered和的包ruled。所需的结果如下所示:

结果

ruled选项使标题出现在算法的顶部,但我需要它出现在底部。此外,在我的文档中,语句Return出现在end语句之前。我该如何交换它们?这是我的文档目前的样子: 我的例子

谢谢。

答案1

这是一个略显丑陋的答案,但它符合您的需求。我添加了一个\hrulealg宏,以便您可以手动将一些水平线放置在需要的位置,并删除了该ruled选项。\Return墙被放置在的第二个参数内\While,因此它以前的位置在end

\documentclass[9pt]{article}
\usepackage[linesnumbered]{algorithm2e}
\newcommand{\hrulealg}[0]{\vspace{1mm} \hrule \vspace{1mm}}
\begin{document}
\begin{algorithm}
\SetAlgoNoLine
\hrulealg
 \KwData{The original list \textbf{R}, $ N \leq n $}
 \KwResult{The re-ranked list \textbf{S}}
\hrulealg
 S = <>\;
 \While{ |S| < N }  {\do  {$i^{*} = argmax_{i\in R\setminus S} f_{obj}(i,S,u)$   \;
     S = S $ \circ i^{*}$\;
     R = R $ \setminus {i^{*}}$  \;
}
}
\Return{S}\;
\hrulealg
\caption{The greedy strategy.}
\label{Algorithm1}
\end{algorithm}

\end{document}

由于使用了我没有的article类,我的输出有一些细微的差别。sig-alternate

在此处输入图片描述

相关内容