Understanding how recursive functions work

后端 未结 18 1027
野性不改
野性不改 2020-11-22 07:08

As the title explains I have a very fundamental programming question which I have just not been able to grok yet. Filtering out all of the (extremely clever) \"In order to

18条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-22 07:34

    Let me tell you with an example of Fibonacci series, Fibonacci is

    t(n) = t(n - 1) + n;

    if n = 0 then 1

    so let see how recursion works, I just replace n in t(n) with n-1 and so on. it looks:

    t(n-1) = t(n - 2) + n+1;

    t(n-1) = t(n - 3) + n+1 + n;

    t(n-1) = t(n - 4) + n+1 + n+2 + n;

    .

    .

    .

    t(n) = t(n-k)+ ... + (n-k-3) + (n-k-2)+ (n-k-1)+ n ;

    we know if t(0)=(n-k) equals to 1 then n-k=0 so n=k we replace k with n:

    t(n) = t(n-n)+ ... + (n-n+3) + (n-n+2)+ (n-n+1)+ n ;

    if we omit n-n then:

    t(n)= t(0)+ ... + 3+2+1+(n-1)+n;

    so 3+2+1+(n-1)+n is natural number. it calculates as Σ3+2+1+(n-1)+n = n(n+1)/2 => n²+n/2

    the result for fib is : O(1 + n²) = O(n²)

    This the best way to understand recursive relation

提交回复
热议问题