递归方法是否会增加圈复杂度

时间:2010-08-20 05:55:42

标签: recursion complexity-theory

我目前没有安装任何用于测量环码复杂代码的程序。但我想知道递归方法会增加复杂性吗?

e.g。

// just a simple C# example to recursively find an int[]
// within a pile of string[]
private int[] extractInts(string[] s)
{
    foreach (string s1 in s)
    {
        if (s1.ints.length < 0)
        {
            extractInts(s1);
        }
        else
        {
            return ints;
        }
    }
}

感谢。

2 个答案:

答案 0 :(得分:4)

据我了解,不。在您的示例中,只有一条线性独立的递归方法路径,因此不会增加圈复杂度。

答案 1 :(得分:2)

  1. 循环会增加圈复杂度。
  2. 循环通常可以使用递归和保护条件重写。
  3. 即使递归调用本身不会严格计为增量,保护条件也会如此。这使循环和递归+保护在标准。