用于对齐类似(部分)算法的软件包,以便于比较

用于对齐类似(部分)算法的软件包,以便于比较

我有两个类似的算法,我想将它们并排展示,并希望对齐代码的类似部分。目前我正在使用:

\begin{multicols}{2}
\begin{algorithm}[H]
    \eIf{$i = 0$}{
        $a\leftarrow b$\;
        \If{$j \not= 0$}{
            $x\leftarrow f(i,j)$\;
        }
    }{
        $a\leftarrow c$\;
    }
    ...
\end{algorithm}

\columnbreak

\begin{algorithm}[H]
    \If{$i = 0 \wedge j \not= 0$}{
        \vskip 2em
        $x\leftarrow f(i,j)$\;
    }
    \vskip 1em
    $a\leftarrow c$\;
    ...
\end{algorithm}
\end{multicols}

这在某种程度上成功地对齐了if-statement、x <- f(i,j)a <- c,但对齐并不完全正确,因为我的 vskips 没有使用正确的长度。 这可能可以解决,但尽管如此:这显然是一次黑客攻击。这引出了我的问题:

有没有更好的方法(也许使用包)来并排呈现两个算法,以便算法的某些部分保持一致?

相关内容