伪·从零开始学算法 - 1.7 N-S图与PAD图
2018-03-10 本文已影响43人
阿啊阿吖丁
之前说的流程图是算法的一种图形描述方式,此外还有其他的方式,比如说N-S图和PAD图。这些图用的并不多,我也只是简单地讲述一下。
N-S图
N-S图(Nassi-Shneiderman图),也叫盒图,是在1972年由Isaac Nassi及其学生Ben Shneiderman提出。N-S图类似流程图,但所不同之处是N-S图可以表示程序的结构。
与流程图有标准类似,N-S图也有一套标准。德国标准化学会的DIN 66261是N-S图的相关标准。
它的一个最大的特点就是不使用箭头标明方向,而是使用各种方框和斜线来表示程序的各种关系。
![](https://img.haomeiwen.com/i1783296/7ddf5bf7e006c91e.png)
PAD图
PAD图(Problem Analysis Diagram,问题分析图)是1974年由日本的二村良彦等人提出的又一种主要用于描述软件详细设计的图形表示工具。
它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树规则就能方便地编写出程序,用这种图转换为程序代码比较容易。
它最大的特点是层次结构清晰。
![](https://img.haomeiwen.com/i1783296/bde383d38578e0cb.png)
示例
我在这里以求阶乘的一种算法为例:
![](https://img.haomeiwen.com/i1783296/d678b35291efe5fc.png)
![](https://img.haomeiwen.com/i1783296/71f139956e5744dc.png)
![](https://img.haomeiwen.com/i1783296/57234c47ab99c377.png)
参考资料
- Nassi-Shneiderman图 - 维基百科,自由的百科全书
https://zh.wikipedia.org/wiki/Nassi-Shneiderman%E5%9C%96 - PAD图_百度百科
https://baike.baidu.com/item/PAD%E5%9B%BE/3658647?fr=aladdin - 程序流程图&盒图(N-S图)&PAD图 - 简书
https://www.jianshu.com/p/4a339e558b5f