为了计算代码的圈复杂度,我绘制了一个由节点和边组成的控制流程图,它帮助我计算V(G)= E - N + 2在我的情况下,E = 15和N = 11造成6McCabe的圈复杂度
一个cyclomativ复杂性我们确认我的回答,我想在寻找的代码打击线性无关的路径一些帮助:
int maxValue = m[0][0];
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if (m[i][j] > maxValue)
{
maxValue = m[i][j];
}
}
}
cout << maxValue << endl;
int sum = 0;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
sum = sum + m[i][j];
}
}
cout << sum << endl;
这应该相等,则结果为我V (G),否则我的计算是错误的。感谢您的帮助。
您的圈复杂度为6是正确的。如何计算节点和边缘的变化(我计数16个节点,20个边),但是如果计数一致,则圈复杂度总是6。 – 2012-04-28 19:16:21