Sonarqube 什么';“的意思是什么;“复杂性”我怎么计算呢?

Sonarqube 什么';“的意思是什么;“复杂性”我怎么计算呢?,sonarqube,code-complexity,Sonarqube,Code Complexity,正如标题所说:我不知道“复杂性”的含义 当我访问声纳结果的网页时,我非常想知道如何计算它。维基百科上的复杂性定义 复杂性基本上是指程序执行的操作数量与输入成比例。通常,它是根据循环或递归函数的深度来计算的 示例: 这具有O(n)的复杂性,因为for循环中的操作执行了n次 for (int i = 0 ; i < n ; ++i) for(int i=0;i

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


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

维基百科上的复杂性定义

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

示例:

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

for (int i = 0 ; i < n ; ++i)
for(int i=0;i
其复杂性为O(n^2)

for(int i=0;i
这也具有O(n)的复杂性:

void递归(int级别,int n){
如果(电平
更新:


阅读您的评论,我认为您指的是圈复杂度,您可以阅读它。在描述部分有一个相当好的解释,但老实说,我从未使用/听说过这种复杂度。

复杂度是一种无症状的度量。它不会告诉您程序执行的操作数。。它告诉你,如果N变大,它将执行多少个动作。如此之快^ ^ ^但我不确定这是答案,在sonar网页上,它显示了这样的通信数据:2.5/function 17.2/class 19.9/fileIt告诉你执行的动作数量,与N成比例。抱歉,我没有充分解释它,但是英语不是我的母语。你是说大O符号是复杂的吗?如果您不确定,那么您可能是;)我发现这篇文章:^ ^因为这是用声纳标记的,我猜“复杂性”是他们的定义,而不是复杂性的大O符号。我不认为这个问题属于堆栈溢出,除非你指的是代码复杂性,它与声纳无关。
 for (int i = 0 ; i < n ; ++i)
      for (int j = 0 ; j < n ; ++j)
 void recursion (int level, int n) {
      if (level < n)
          recursion(level + 1, n);
 }