圈复杂度计算

一、公式:Vg=m-n+p;//   Vg=m-n+2p;

g:代表强连通有向图,

m:代表强连通有向图的弧数,

n:代表强连通有向图的节点数,

p:是g中分离部分的数目,(默认是1)



m和n都很清晰,当我们要用公式计算的时候p的值不固定,很难计算。为什么会出现p和2p的情况呢

如图所示,这是一个控制流图,入度是2,出度是28,。我们能从2→28,但是不能从282,所以这里就该减去2p也就是2.

若是画一条从28→2的虚线,那么这里就该减去1,就是正常的p就行。

总结:分离部分位p还是2p主要看,出度和入度有没有相连,相连为p,不相连位2p。这就是1和2 的差距。





二、判定节点数+1
判定节点数是指强连通图中需要判断的节点,就像图中的(3.7.11.15.19),一共5个,那么圈复杂度就是6


三、图中围成圈的个数,
这个要求必须是强连通有向图,意思是有一条从28→2的虚线。然后看看图中围成圈的个数。
像:(19.20.22.23),(15.16.24.23.20.19),(11.12.25.24.16.15),(7.8.26.25.12.11),(3.4.27.26.8.7),
和虚线组成的(2.28.27.4.3)(图中没有画出,请脑补。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值