Увеличивает ли рекурсивный метод сложность цикломатрии - PullRequest
6 голосов
/ 20 августа 2010

На данный момент у меня не установлено никаких программ для измерения сложности цикломатрического кода.Но мне было интересно, разве рекурсивный метод увеличивает сложность?

например

// 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 ]

4 голосов
/ 20 августа 2010

Насколько я понимаю, нет. В вашем примере есть только один линейно независимый путь к рекурсивному методу, поэтому он не увеличит цикломатическую сложность.

2 голосов
/ 22 сентября 2011
  1. Петли увеличивают цикломатическую сложность.
  2. Цикл часто можно переписать с использованием рекурсии плюс условие защиты.

Даже если сам рекурсивный вызов не будет учитываться строго как приращение, условие охраны делает это. Это делает цикл и рекурсию + охрану на уровне

...