首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >麻省理工学院课件中的伪代码

麻省理工学院课件中的伪代码
EN

Stack Overflow用户
提问于 2009-09-15 12:19:35
回答 2查看 769关注 0票数 0

我从来没有太多的需要编写大量的正式伪代码,但是已经出现了这种需求,所以我想我应该选择一些标准来保持代码之间的一致性。

为了达到这个目的,我找到了一些"iTunes U“课件视频,还有6.046J / 18.410J算法简介(SMA 5503)

在第一个讲座视频中,讲师在黑板上写插入排序,他写道:

代码语言:javascript
复制
Insertion-Sort(A, N) // Sorts A[1..n]
  for j ← 2 to n
    do key ← A[j]
      i ← j-1
      while i > 0 and A[i] > key
        do A[i+1] ← A[i]
          i ← i-1
      A[i+1] ← key

所以,我的问题是:

  • 为什么i ← j-1什么时候A[i+1] = key?这就是为什么在某些情况下,而=在另一种情况下?请注意,在上面的代码中,也用于后者,但是在网上可用的讲义中,使用了=,这仅仅是一个错误吗?(我想是的)
  • 更重要的是,为什么do key ← A[j]i ← j-1?有什么特别的,需要这样的do命令和缩进吗?

换句话说,为什么上面的伪代码不是这样写的(带有我的亮点):

代码语言:javascript
复制
Insertion-Sort(A, N) // Sorts A[1..n]
  for j ← 2 to n
    key ← A[j]                  <-- lost the do here
    i ← j-1                     <-- no indentation
    while i > 0 and A[i] > key
      A[i+1] ← A[i]             <-- lost the do here
      i ← i-1                   <-- no indentation
    A[i+1] ← key

最后一个问题:有没有人在某个地方有伪代码的代码标准?我的主要目标是一致性,所以我只需要“教”收件人一次。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-15 12:40:26

结构化英语是一种“标准化”的伪代码语言。

票数 1
EN

Stack Overflow用户

发布于 2013-09-04 22:29:48

箭头在普通代码中用作=。

伪等号在法线码中充当==

所以j <- 1的意思是j = 1

j = 1平均if( j == 1)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1426840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档