【问题标题】:<--- and <-> in pseudocode<--- 和 <-> 在伪代码中
【发布时间】:2012-06-01 06:15:40
【问题描述】:

我不是cs背景,我想弄清楚什么用于什么。在伪代码中我看到很多这样的:

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

&lt;---&lt;-&gt;分别指的是什么?

【问题讨论】:

    标签: pseudocode


    【解决方案1】:

    &lt;--- 的意思是“将右侧分配给左侧”(在 for 的情况下使用它有点奇怪,因为它可能很容易被省略)。

    &lt;-&gt; 表示“交换”。 A[j] 值与 A[i] 交换。

    编辑

    我突然想到第一行可能缺少i,应该改为:

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

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

    【讨论】:

      【解决方案2】:

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

      在这种情况下,我猜&lt;--- 的意思是“将右侧分配给左侧”,&lt;-&gt; 的意思是“交换左右两侧”。

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

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

      所以这是一个普通的for 循环,可以写成:

      for i = 1 to n-1
      

      在 BASIC 中,或:

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

      使用类 C 语言。

      【讨论】:

        【解决方案3】:

        分配左箭头

        用于表明变量接收到一个新值,例如

        for i <- 1 to n-1 do 
        

        我在以下地方看到过这个:

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

        用于交换元素的左右箭头

        也用于以符号方式使操作明显。

        我现在除了伪代码什么都想不出来。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-23
          相关资源
          最近更新 更多