2017-06-03 87 views
-3
  • a。根据两个CC公式,解释为什么节点的数量不会影响CC。基于两种圆环复杂性公式,解释为什么程序性节点的数量不会影响环复杂度值

    b。如果你有多个停止节点会发生什么? d)。中断循环复杂度的影响是什么,继续, 转到和返回语句?

    e。 if/switch语句中其他或默认 子句的圈复杂度有什么影响?

    f。对递归方法调用的圈复杂度有什么影响? g。

    g。通过一个循环的可能路径的总数(用于while或 do ... while)实际上是无限的,因为它可以重复任意数量的 次。那么为什么一个循环只会增加 之一的圈复杂度? h。

    h。计算复杂性(用大O表示) 是否会影响圈复杂度?

+0

看到这个问作业问题:https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions和这如何写一个很好的问题: https://stackoverflow.com/help/how-to-ask。现在你只是要求我们为你做功课。 –

+0

**感谢您的建议**,但我需要我的问题的答案。我曾经对圆形复杂性有过分评价。 –

+0

你到目前为止做了哪些工作?你坚持什么具体的东西?你的课本和演讲稿告诉你什么? –

回答

1

下面给出的是我对您问题的回答,您可以更正给出的答案是否有问题。

a。根据两个CC公式,解释为什么程序节点的数量不会影响CC。 CC是衡量通过代码的线性无关路径的数量。 程序节点可以组合成一个节点,因此只有一个单一的路径通过代码。无论程序节点的数量cc = 1。由于决策节点d = 0

b。如果你有多个停止节点会发生什么?

CC测量线性无关路径。退出点不添加代码路径,他们终止路径,从而减少CC(或者至少,他们当然不会增加CC)。 https://stackoverflow.com/a/2073485/5156517

c。假设你使用V(G)= d + 1公式,但不计算switch语句,你可以计算case子句。这在概念上是正确的吗?解释为什么你会得出正确的答案,尽管案例条款不是决定节点。

从概念上讲违背公式,3件案件意味着3件决定。不计算默认路径。

d。中断,继续,转到和返回语句的循环复杂性有什么影响?

没有影响

即if/switch语句中else或default子句的圈复杂度有什么影响?

没有效果,否则默认子句不计入决策节点。

f。对递归方法调用的圈复杂度有什么影响?

没有。在你的例子中,递归方法只有一条线性独立的路径,所以它不会增加圈复杂度。 g。

g。通过循环(while,while或do while)的可能路径的总数实际上是无限的,因为它可以重复任意次数。那么为什么一个循环只会增加一个循环复杂度?

因为它不会增加线性独立路径的数量,因为while循环并不意味着多个控制路径......因此它不会添加到cc.only,而是在它返回到每次从循环返回时启动一个decion节点来检查条件,因此只添加一条单一路径。 h。

h。计算复杂性(用大O表示法表示)是否会影响圈复杂度?

计算复杂性度量资源耗尽,占用空间和时间,而不是衡量程序的复杂性。

+1

谢谢。这真的很有帮助 –