C15

McCabe 环路复杂度

E−N+2 永不失手、P+1 数判定、强连通要减一——画一遍流图,三个口径互验

开始讲解

0 / 0

交互实验

真题预设:
编辑模式: 双击节点删除 · 点击边删除 · 判定节点(出度≥2)描金边
节点数 N —
边数 E —
判定节点 P(出度≥2 / 折算) —
V(G) = E−N+2(独立路径数) —
P+1 校验 —
强连通判定 —

核心思想

  • V(G) = E − N + 2 永不失手;E 是边数、N 是节点数,别代成路径数。
  • V(G) = P + 1:P 是判定节点(出度≥2);k 路分支按 k−1 折算,否则 switch 会低估。
  • 强连通图(含回边)用 E−N+1;它等于去掉回边后的 E−N+2,两口径自洽。
  • V(G) = 线性独立路径数 = 覆盖所有语句的用例数参照;>15 应拆分重构。
  • 复合条件(a&&b)在流程图上一个判定框算 1 个——数「框」不数「条件」。

真题演练

查看解析