Question

What does the following function compute? Give an analysis of its complexity int fun1 (int n)...

What does the following function compute? Give an analysis of its complexity

int fun1 (int n)

{

if (n == 0)

    return 1;

else

     return fun1(n-1) + fun1(n-1);

}

Homework Answers

Answer #1
for an input of n, this function calculates the returns the value of 2 raised to the power of n.
fun1(n) = 2^n

this is a recursive function
recurrence relation of this function is T(n) = 2T(n-1) + O(1)

solving the recurrence relation:
----------------------------------
T(n)
= 2T(n-1) + 1
= 2(2T(n-2) + 1) + 1
= 2(2(2T(n-3) + 1) + 1) + 1
= 2^3T(n-3) + 2^2 + 2^1 + 1
= 2^nT(1) + 2^n-1 + ... + 1
= 2^n + 2^n-1 + ... + 1
= 2^(n+1) - 1
so, T(n) = O(2^n)

Time complexity: O(2^n)
Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
Determine the order of complexity for the following algorithm: function(int n) { int l, u, m;...
Determine the order of complexity for the following algorithm: function(int n) { int l, u, m;    l=0; u= n-1;    while (l<u) {        m= (l+u)/2;        if (a[m] < x) l= m+1;        else if (a[m] >x) u=m-1;            else return “found”    }    return (“not found”); }
Given the following function: int bar(int n) {     if( n < 0 )         return...
Given the following function: int bar(int n) {     if( n < 0 )         return -2;     else if (n <= 1)         return 2;     else       return (3 + bar(n-1) + bar(n-2)); } What is returned by bar (4)? Show all the steps
Draw a program flow graph for the function below int binsearch(int x,int v[],int n) { int...
Draw a program flow graph for the function below int binsearch(int x,int v[],int n) { int low,high,mid; low=0; high=n-1; while(low<high) { mid = ( low + high ) / 2; if( x < v[mid]) high = mid - 1; else if ( x > v[mid]) low = mid + 1; else return mid; } return -1; }
Q1: Given the following code, what is returned by tq(4)? int tq(int num){ if (num ==...
Q1: Given the following code, what is returned by tq(4)? int tq(int num){ if (num == 0) return 0; else if (num > 100) return -1; else     return num + tq( num – 1 ); } Group of answer choices: 0 4 -1 10 Q2: Given that values is of type LLNode<Integer> and references a linked list (non-empty) of Integer objects, what does the following code do if invoked as mystery(values)? int mystery(LLNode<Integer> list) {    if (list.getLink() ==...
QUESTION 1 For the following recursive function, find f(5): int f(int n) { if (n ==...
QUESTION 1 For the following recursive function, find f(5): int f(int n) { if (n == 0)    return 0; else    return n * f(n - 1); } A. 120 B. 60 C. 1 D. 0 10 points    QUESTION 2 Which of the following statements could describe the general (recursive) case of a recursive algorithm? In the following recursive function, which line(s) represent the general (recursive) case? void PrintIt(int n ) // line 1 { // line 2...
Assume that the functions CS303 and UMKC have been defined as follows: int CS303(int n) {...
Assume that the functions CS303 and UMKC have been defined as follows: int CS303(int n) {      if (n == 0) {            return 1;      } else {            return UMKC(2, CS303(n - 1));      } } int UMKC(int n1, int n2) {      if (n1 == 0) {            return 0;      } else {            return n2 + UMKC(n1 - 1, n2);      } } What is the value of CS303(5)?
Consider the following two methods: public static boolean isTrue(int n){        if(n%2 == 0)          ...
Consider the following two methods: public static boolean isTrue(int n){        if(n%2 == 0)           return true;        else           return false; } public static int Method(int[] numbers, int startIndex) { if(startIndex >= numbers.length)        return 0; if (isTrue(numbers[startIndex]))      return 1 + Method(numbers, startIndex + 1); else      return Method(numbers, startIndex + 1); } What is the final return value of Method() if it is called with the following parameters: numbers = {1, 2, 2, 3, 3,...
Assume that the functions CS303 and UMKC have been defined as follows: int CS303(int n) {...
Assume that the functions CS303 and UMKC have been defined as follows: int CS303(int n) { if (n <= 0) { return 1; } else { return UMKC(5, CS303(n - 5));      } } int UMKC(int n1, int n2) { if (n1 == 0) { return 0; } else { return n2 + UMKC(n1/5, n2);      } } What is the value of CS303(20)?
Write a C function to compute the following output (int) based on two input (int) variables:...
Write a C function to compute the following output (int) based on two input (int) variables: output = a*a + b*b - 2*a*b If the value of output is '0', then return -1 instead. Call the C function 4 times from main() with values of 'a' and 'b' as follows and print output values for each case. a = 3, b = 4 a = 1, b = 1 a = -2 b = 3 a = -4 b =...
Consider the following function: double arrayavg(int a[], int n){ int sum=0; for(int i=0; i!=n; ++i){ sum+=a[i];...
Consider the following function: double arrayavg(int a[], int n){ int sum=0; for(int i=0; i!=n; ++i){ sum+=a[i]; } return (double)sum/n; } Rewrite the function to eliminate the array subscripting (a[i]), using pointer arithmatic instead. Write a program that reads a line of input and checks if it is a palindrome (ignoring spaces) Write a program that takes the name of a file as a command line argument, and prints the contents of the file (similar to the linux 'cat' program). Write...