路径复杂度
1、通用公式: (E+F) - N+1
路径复杂度= E-N+2+(F-1) = (E+F) - N+1
环形回路和非环形回路公式实际是一样的,没区别:复杂度= (E+F)-N+1
属性解释:
E是边(线条数量),
N是节点数量,
F为路径终结点数量(就是end节点 ,如果是纯环形回路,则没有路径终结点,F为0,则=E-N+1)
2、非环形回路的复杂度计算
公式为什么+1?
公式为什么(E+F)-N?
每多一条边,只有三种情况:
1、多一个已有路径的next节点,
2、一个组合(一个新路径+一个新的终结点+一个节点)
3、节点不变,终结点减1
这3种情况里,
1 和 3 的总值不变,N加多少,(E+F)就加多少,且不会出现新的路径
而第二种情况里,N加多少,(E+F)就多一,且会出现一条新的路径,显然这才是关键点
那么(E+F)-N 就会只剩下多出来的新路径(情况2)
3、类推到环形回路的复杂度演示
区分下纯环形回路 和 不是纯粹的环形回路
以纯环形回路进行类推,依然满足公式:(E+F)-N+1
纯环形回路其实没必要计算终结点F,因为一直都是0,除非它不再是纯粹的环形回路
3、特殊情况:自旋
此时环形和非环形没区别
公式化理解:此时将B自旋回路看成一个环形回路即可
公式:(E+F)-N+1
总复杂度= A->B的非环形回路的路径 + B自旋回路的路径
= (1+1-2+1)+ (1+0-1+1)
= 1 + 1
= 2
概念化理解:自旋过,没有自旋过
企业级理解:直接当成一条正常边就行
因为计算结果一样,完全不影响