伪·从零开始学算法 - 1.7 - N-S 图与 PAD 图

之前说的流程图是算法的一种图形描述方式,此外还有其他的方式,比如说 N-S 图和 PAD 图。这些图用的并不多,我也只是简单地讲述一下。

N-S 图

N-S 图(Nassi-Shneiderman 图),也叫盒图,是在 1972 年由 Isaac Nassi 及其学生 Ben Shneiderman 提出。N-S 图类似流程图,但所不同之处是 N-S 图可以表示程序的结构。

与流程图有标准类似,N-S 图也有一套标准。德国标准化学会的 DIN 66261 是 N-S 图的相关标准。

它的一个最大的特点就是不使用箭头标明方向,而是使用各种方框和斜线来表示程序的各种关系。

N-S 图图例

PAD 图

PAD 图(Problem Analysis Diagram,问题分析图)是 1974 年由日本的二村良彦等人提出的又一种主要用于描述软件详细设计的图形表示工具。

它用二维树形结构的图表示程序的控制流,以 PAD 图为基础,遵循机械的走树规则就能方便地编写出程序,用这种图转换为程序代码比较容易。

它最大的特点是层次结构清晰。

PAD 图图例

示例

我在这里以求阶乘的一种算法为例:

阶乘-流程图

阶乘-N-S 图

阶乘-PAD 图

参考资料