“21 天好习惯”第一期-3

wuchangjian2021-10-25 07:00:36编程学习

今天刷了软考真题发现McCabe环路复杂度的计算几乎每次都会考,然而却忘记咋计算了,所以我决定去把它捡回来。

McCabe环路复杂度的计算,共有三种方法。

(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=M-N+2,其中,M是流图中的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

让我们一起通过一个简单的例题来理解McCabe环路复杂度计算的三种方法。

例题如下图所示(图画的有点丑,勿怪)

 

 

 

 

第一种方法:流图中的区域数等于环形复杂度

这种方法对于有些人来说可能有点迷糊,就比如我,我刚开始学时以为就是数圈圈,但还是有点不清不楚的感觉,就是用数圈得出来的答案觉得不可靠。所以现在我更加懂了,我是这样子做的,首先画个正方形,有多少个判断节点就在正方形上画几条线,每条线之间相互平行,然后看把正方形分成了几部分区域,如下图所示(相当于切蛋糕,每刀切的方向相同),区域数就是流图的环形复杂度,为3

 

 第二种方法:流图G的环形复杂度V(G)=M-N+2,其中,M是流图中的条数,N是结点

看流图可以得出  M=8 ,N=7,所以 V(G)=8-7+2=3

第三种方法:流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目

看流图可以得出  P=2,所以 V(G)=2+1=3

相关文章

win7+python3.7离线安装selenium4.0.0

selenium下载地址 将selenium-4.0.0-py3-none-any...

C++ 变量的定义与声明的区别

变量的定义         变量的定义用于为变量分配存储空间,还可以为变...

# 通过阿里云源安装vim命令

# 通过阿里云源安装vim命令   RUN mv /etc/apt/sources.li...

C语言知识6

1.%#X表示以十六进制形式输出,并附带前缀0X;C语言用变...

Java: Memory

Garbage Collection In Java, the memory c...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。