伪代码

  1. for,end for,do,while, end while,if,else都用加粗

  2. 变量要用花体

  3. 不要使用括号,而是使用缩进表示代码块

  4. 需要有input,output

  5. 需要有行标

伪代码规范

伪代码是一种接近自然语言的算法描述形式,其目的是在不涉及具体实现(各种编程语言)的情况下将算法的流程和含义清楚的表达出来,因此它没有一个统一的规范,有的仅仅是在长期的实践过程中形成的一些约定俗成的表达样式。下图是一个简单的例子1,但已经包含了大多数主要元素

示例伪代码

首先需要一个标题来描述整个算法,一般还会有一个与之一起的编号。在上图中,算法的标题为「Acesscontrol algorithm flow」,编号为「Algorithm 1」。标题与编号一般位于算法顶部,但也有人放在底部,编号多按全文的算法总数进行索引,但也可以按章节分别进行索引。

其次,在正式的算法流之前需要声明输入和输出。通常使用关键字 Input 和 Output 来声明,但也有人使用关键字 Data 和 Result。

顺序、选择与循环结构是算法的主体。通常,不同的程序块使用缩进来保持结构清晰,但也有不少人使用垂直连接线进行进一步划分,如上图。另外,和编程语言类似,伪代码中的选择和循环使用 if-then-else、while-do 和 for-do 等关键字和结构来描述2,举例如下,其中,每个程序块结束的 end 关键字有人选择写,也有人选择不写。

算法流程结构算法流程结构

赋值操作一般使用左箭头「<—」表示。A[i] 用来表示数组 A 的第 i 个元素,A[1…j] 则表示下标从 1 到 j 的子数组;函数调用使用函数名+传入参数的形式;返回值使用 return 关键字,这些都和常规编程语言相同。需要注意的是,未声明而使用的变量都可以视为算法内的局部变量,如果是全局变量则需要进行解释,可以在上下文中,也可以使用注释;注释的形式也和传统语言相同,使用 // 或 /……/。

算法整体通常使用三线框包围,但也有少部分人使用一个完整的框。

伪代码的语句一般不需要在末尾使用分号,但行首通常会添加行号。

参考: