我需要将一些python和java例程转换为我的硕士论文的伪代码,但是在编写语法/样式方面遇到了麻烦:
你怎么写伪代码?有没有标准的建议?
Eli*_*sky 20
我建议查看"算法导论"一书(Cormen,Leiserson和Rivest).我总是发现它的算法伪代码描述非常清晰和一致.
一个例子:
DIJKSTRA(G, w, s)
1 INITIALIZE-SINGLE-SOURCE(G, s)
2 S ? Ø
3 Q ? V[G]
4 while Q ? Ø
5 do u ? EXTRACT-MIN(Q)
6 S ? S ?{u}
7 for each vertex v ? Adj[u]
8 do RELAX(u, v, w)
Run Code Online (Sandbox Code Playgroud)
回答我自己的问题,我只想提请注意以下关于在LaTeX中排版伪代码的网页:http://www.tex.ac.uk/cgi-bin/texfaq2html?label = algorithm.他们描述了许多不同的风格,列出了优点和缺点.很可能,碰巧存在两个用于以Cormen的"Introductin to Algorithms"中使用的方式编写伪代码的样式表,如上所述:newalg和clrscode.后者是科尔曼自己写的.
我建议你看一下Fortress Programming Language.
这是一种实际的编程语言,而不是伪代码,但它被设计为尽可能接近可执行的伪代码.特别是,为了设计语法,他们阅读并分析了数百篇CS和数学论文,课程,书籍和期刊,以找到伪代码和其他计算/数学符号的常见使用模式.
您可以通过查看Fortress源代码并抽象出您不需要的内容来利用所有研究,因为您的目标受众是人类,而Fortress是一个编译器.
以下是从NAS(NASA高级超级计算)共轭梯度并行基准运行Fortress代码的实际示例.为了获得有趣的体验,请将基准测试的规范与Fortress中的实现进行比较,并注意几乎是1:1的对应关系.还要比较其他几种语言(如C或Fortran)的实现,并注意它们与规范完全无关(并且通常也比规范长一个数量级).
我必须强调:这不是伪代码,这是实际工作的Fortress代码!堡垒代码示例http://ProjectFortress.Sun.Com/Projects/Community/raw-attachment/wiki/FortressQuestions/NAS-CG.png
编辑:上面代码示例链接已死.可以在这里找到类似的例子:https://umbilicus.wordpress.com/2009/10/16/fortress-parallel-by-default/