“复杂性”的含义是什么 - 我该如何计算它?

时间:2013-11-14 08:02:29

标签: sonarqube code-complexity

正如标题所说:我不知道“复杂性”的含义

当我访问声纳结果的网页时,我非常想知道如何计算它。

1 个答案:

答案 0 :(得分:0)

维基百科here的复杂性定义。

复杂性基本上意味着程序执行的操作与输入成比例。通常它是根据你的循环或递归函数的深度来计算的。

示例:

这具有O(n)的复杂性,因为for循环中的动作被执行了n次。

for (int i = 0 ; i < n ; ++i)

这具有O(n ^ 2)

的复杂性
 for (int i = 0 ; i < n ; ++i)
      for (int j = 0 ; j < n ; ++j)

这也有O(n)的复杂性:

 void recursion (int level, int n) {
      if (level < n)
          recursion(level + 1, n);
 }

更新:

阅读你的评论,我认为你指的是Cyclomatic复杂性,你可以阅读它here。在描述部分有一个相当不错的解释,但说实话,我从来没有使用/听过这种复杂性。