6

我不是cs背景,我试图理解什么用于什么。在伪代码中,我看到很多这样的:

for i <---  1 to n-1 do
j <--- find-Min(A,i,n)
A[j] <-> A[i]
end for 

<---<->用来指什么?

4

3 回答 3

9

<---表示“将右侧分配给左侧”(在这种for情况下使用它有点奇怪,因为它可能很容易被省略)。

<->意思是“交换”。A[j] 值与 A[i] 交换。

编辑

我突然想到第一行可能丢失了i,应该改为:

for i <---  1 to n-1 do

这成为上述的合法用例<---:从到顺序i分配值,并为每个值执行循环体(向下到,表示循环结束) 。1n-1end fori

于 2012-05-25T16:43:13.353 回答
4

关于伪代码中使用的符号,远未达成普遍共识。

在这种情况下,我猜这<---意味着“将右侧分配给左侧”,并且<->意味着“交换右侧和左侧”。

但是,在第一种情况下,我认为您缺少一个字符。应该是这样的:

for i <--- 1 to n-1 do

所以这是一个正常的for循环,可以写成:

for i = 1 to n-1

在 BASIC 中,或:

for (i=1; i<n; i++)

在类 C 语言中。

于 2012-05-25T16:43:40.237 回答
1

分配的左箭头

用于使变量接收到一个新值很明显,例如

for i <- 1 to n-1 do 

我在以下方面看到了这一点:

  • 主要是伪代码;
  • R、S、Scala 和 OCaml;
  • 在 APL 中带有自己的左箭头符号。

用于交换元素的左右箭头

也用于以象征性的方式使操作明显。

我现在想不出除了伪代码之外的任何东西。

于 2012-05-25T16:51:06.960 回答