Question

Find a) overall run time T(n) and b) worst case run timeO(N) of this recursive function....

Find a) overall run time T(n) and b) worst case run timeO(N) of this recursive function.

int mystery (int n)

{

if (n<= 1)

{return 1

}

else

{

return mystery(n-1) + mystery(n-2);

}

}

0 0
Add a comment Improve this question Transcribed image text
Answer #1
a)
recurrence relation
overall runtime is T(n)
T(n) = T(n-1) + T(n-2) + O(1)

b)
worst-case running time is O(2^n)

Explanation:
----------------
T(n)
= T(n-1) + T(n-2) + 1
<= 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)

hence, worst-case running time is O(2^n)
Add a comment
Know the answer?
Add Answer to:
Find a) overall run time T(n) and b) worst case run timeO(N) of this recursive function....
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. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • *Program is in C* Write a recursive function to compute a^b for integers a and b....

    *Program is in C* Write a recursive function to compute a^b for integers a and b. For the recursive use the following equality a^b = a^b - 1 * a and a^0 = 1. What does the following recursive function do? int mystery(int a, int b) {if (b == 1) return (a); else return (a + mystery(a, b - 1));}

  • For each of the following recursive methods available on the class handout, derive a worst-case recurrence...

    For each of the following recursive methods available on the class handout, derive a worst-case recurrence relation along with initial condition(s) and solve the relation to analyze the time complexity of the method. The time complexity must be given in a big-O notation. 1. digitSum(int n) - summing the digits of integer: int digitSum(int n) {                 if (n < 10)                                 return n;                 return (digitSum(n/10) + n%10); } 2. void reverseA(int l, int r) - reversing array: void...

  • FOR ALGORITHM A WORST CASE TIME COMPLEXITY IS DESCRIBED BY RECURRENCE FORMULA T(n)= n/ T (n...

    FOR ALGORITHM A WORST CASE TIME COMPLEXITY IS DESCRIBED BY RECURRENCE FORMULA T(n)= n/ T (n )thi T (c)=1 if c < 100 FOR ALGORITHM B WORST TIME COMPLEXITY IS DESCRIBED BY RECURRENCE FORMULA T(n) = 2T (2/2) + n/logn ; (c) = 1 fc 2100 WHICH ALGORITHM IS ASYMPTOTICALLY FASTER? WHY?

  • The code for a recursive function 'mystery' appears below. Assume we passed the following array as...

    The code for a recursive function 'mystery' appears below. Assume we passed the following array as x[]: int x[] = { 10, 20, 25, 25 }; How would we call mystery() so the return value is 1? int mystery(const int x[], int n, int mysteryValue) { int count = 0; if (n <= 0) return 0; else { if (x[n - 1] == mysteryValue) count = 1; return mystery(x, n - 1, mysteryValue) + count; } } 1mystery(x, 4, 0)...

  • For the following code, figure out the recurrences (base case and recursive step), calculate the running...

    For the following code, figure out the recurrences (base case and recursive step), calculate the running time and establish the order of growth. mystery(n): if n == 1 then println("A"); else mystery(n/2); println("B") mystery(n/2); end if

  • I can not get this recursive binary search to wok for an edge case and it...

    I can not get this recursive binary search to wok for an edge case and it works but not for all, If you could look at it and try to find what is wrong to make this work for all edge cases. //Write a function that will return true if an element k is found in an array of integers A and false otherwise. The input to your //function is the array, its length 0 < n <= 10000, and...

  • CHALLENGE ACTIVITY 6.4.2: Recursive function: Writing the recursive case. Write code to complete factorial_str()'s recursive case....

    CHALLENGE ACTIVITY 6.4.2: Recursive function: Writing the recursive case. Write code to complete factorial_str()'s recursive case. Sample output with input: 5 5! = 5 * 4 * 3 * 2 * 1 = 120 1 test passed 4 6 All tests 1 passed 8 9 1 def factorial_str(fact_counter, fact_value): 2 output_string = 3 if fact_counter == 0: # Base case: 0! = 1 5 output_string += '1' elif fact counter == 1: # Base case: print 1 and result 7...

  • C++: Find Time Analysis Worst case O() of each member function with explanation: 1) /** insert function:    parameters:...

    C++: Find Time Analysis Worst case O() of each member function with explanation: 1) /** insert function:    parameters: obj    Description: inserts new elements into the correct position in the    sorted array, sliding elements over the position to right, as needed **/ template <typename Object> SortedArray::void insert(const Object &obj) {    if (theSize >= theCapacity)    {        cout << "Error: there is no enough memory space. " << endl;        return;    }    else    {        for (int i = ((2 * theSize) + 1); (i...

  • Find the worst case runtime f(n) for the following algorithms. Specify the number of operations executed...

    Find the worst case runtime f(n) for the following algorithms. Specify the number of operations executed for an input size n, for the worst case run time as a function of n. Circle statement(s) and draw a   line to the right side specifying the number of operations. If statement(s) are a part of an iteration of n, specify the total number of iterations as a function of n. Algorithm-01 int sum = 0; int j = 1; while ( <=...

  • PROBLEM: Write a recursive method named SumEvens that takes an integer X and returns the sum...

    PROBLEM: Write a recursive method named SumEvens that takes an integer X and returns the sum of even digits in X. Please comment on every line of code. EXISTING CODE: int numTwos(int n) { int right = n % 10; int remain = n / 10; if(n==0) { return 0 ; } else if(right ==2) { //rightmost digit is 2 return 1 + numTwos(remain); else { return 0 + numTwos(remain); } } int SumDigits(int X) { if (X == 0)...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT