Loading [MathJax]/jax/output/HTML-CSS/jax.js

$ $

Recurrences

Counting Activation Records

Counting Operations

Analyzing Recursive Algorithms: Stage 1

Warm-up Exercise

Develop a recurrence that describes the number of multiplication operations performed by the following code block:

public static int fun(int n) {
        if (n == 0) {
            return 5;
        } else {
            int sum = 1;
            for (int i = 0; i < 4; i++) {
                sum *= 2;
            }
            return sum * fun(n - 1);
        }
    }
}

T(0)=??

T(n)=??

Warm-up Exercise

public static int fun(int n) {
        if (n == 0) {
            return 5;
        } else {
            int sum = 1;
            for (int i = 0; i < 4; i++) {
                sum *= 2; // Four here.
            }
            return sum * fun(n - 1); // One here.
        }
    }
}

T(0)=0

T(n)=5+T(n1)

Another Exercise

Write a recurrence relation that describes the number of additions performed by this method.

   public static int fun1(int n) {
        if (n == 0) {
            return 20;
        } else {
            
            int result = 2 * n;

            return result - (fun(n - 1) + fun(n - 1));
        }
    }

Part 2: Solving the Recurrence

Next time...