Recursion 递归方法会增加循环矩阵的复杂性吗

Recursion 递归方法会增加循环矩阵的复杂性吗,recursion,complexity-theory,Recursion,Complexity Theory,我目前没有安装任何用于测量循环矩阵代码复杂性的程序。但是我想知道递归方法会增加复杂性吗 e、 g //这只是一个递归查找int[]的简单C#示例 //在一堆字符串中[] 私有整数[]提取整数(字符串[]s) { foreach(s中的字符串s1) { 如果(s1.ints.length在哪里?圈复杂度取决于代码中独立路径的数量。粗略地翻译,寻找分支。递归不一定意味着有多个控制路径。我猜递归和高圈复杂度之间不一定有对应关系。 // just a simple C# example to recur

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

e、 g

//这只是一个递归查找int[]的简单C#示例
//在一堆字符串中[]
私有整数[]提取整数(字符串[]s)
{
foreach(s中的字符串s1)
{
如果(s1.ints.length<0)
{
提取物(s1);
}
其他的
{
返回整数;
}
}
}

谢谢。

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

  • 循环确实增加了圈的复杂性
  • 循环通常可以使用递归加上保护条件重写

  • 即使递归调用本身不会严格算作增量,保护条件也会这样做。这使得循环和递归+守门员。

    代码中的原始<代码> INT[]/COD>在哪里?圈复杂度取决于代码中独立路径的数量。粗略地翻译,寻找分支。递归不一定意味着有多个控制路径。我猜递归和高圈复杂度之间不一定有对应关系。
    // 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;
            }
        }
    }