Computer Science Engineering (CSE) Exam  >  Computer Science Engineering (CSE) Questions  >  Consider the following code fragment in the C... Start Learning for Free
Consider the following code fragment in the C programming language when run on a non-negative integer n.
int f (int n)
{
if (n==0 || n==1)
return 1;
else
return f (n - 1) + f(n - 2);
}
Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?
  • a)
    This algorithm runs in polynomial time in n but the optimal running time is exponential in n.
  • b)
    This algorithm runs in exponential time in n and the optimal running time is exponential in n.
  • c)
    This algorithm runs in exponential time in n  but the optimal running time is polynomial in n.
  • d)
    This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.
  • e)
    The algorithm does not terminate.
Correct answer is option 'C'. Can you explain this answer?
Verified Answer
Consider the following code fragment in the C programming language whe...
it is fibanacci series generation. it takes exponential time if we won't use dynamic programming.
if we use dynamic programming then it takes O(n)
View all questions of this test
Most Upvoted Answer
Consider the following code fragment in the C programming language whe...

Explanation:

Time Complexity Analysis:
- The given algorithm is a recursive function that calculates the Fibonacci number for a given non-negative integer n.
- The algorithm recursively calls itself with n-1 and n-2 until it reaches the base case where n is 0 or 1.
- Each recursive call results in two more recursive calls, leading to an exponential number of function calls.
- Therefore, the time complexity of this algorithm is exponential in n.

Comparison to Optimal Running Time:
- The optimal running time for calculating the n-th Fibonacci number is polynomial in n.
- This can be achieved using techniques like dynamic programming, which can calculate the Fibonacci numbers in linear time O(n).
- Therefore, the given algorithm's running time is not optimal compared to the polynomial time solution for this problem.

Therefore, option 'C' is the correct answer as the algorithm runs in exponential time in n, while the optimal running time is polynomial in n.
Explore Courses for Computer Science Engineering (CSE) exam

Top Courses for Computer Science Engineering (CSE)

Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer?
Question Description
Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? for Computer Science Engineering (CSE) 2024 is part of Computer Science Engineering (CSE) preparation. The Question and answers have been prepared according to the Computer Science Engineering (CSE) exam syllabus. Information about Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? covers all topics & solutions for Computer Science Engineering (CSE) 2024 Exam. Find important definitions, questions, meanings, examples, exercises and tests below for Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer?.
Solutions for Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? in English & in Hindi are available as part of our courses for Computer Science Engineering (CSE). Download more important topics, notes, lectures and mock test series for Computer Science Engineering (CSE) Exam by signing up for free.
Here you can find the meaning of Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? defined & explained in the simplest way possible. Besides giving the explanation of Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer?, a detailed solution for Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? has been provided alongside types of Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? theory, EduRev gives you an ample number of questions to practice Consider the following code fragment in the C programming language when run on a non-negative integer n.int f (int n){if (n==0 || n==1)return 1;elsereturn f (n - 1) + f(n - 2);}Assuming a typical implementation of the language, what is the running time of this algorithm and how does it compare to the optimal running time for this problem?a)This algorithm runs in polynomial time in n but the optimal running time is exponential in n.b)This algorithm runs in exponential time in n and the optimal running time is exponential in n.c)This algorithm runs in exponential time in n but the optimal running time is polynomial in n.d)This algorithm runs in polynomial time in n and the optimal running time is polynomial in n.e)The algorithm does not terminate.Correct answer is option 'C'. Can you explain this answer? tests, examples and also practice Computer Science Engineering (CSE) tests.
Explore Courses for Computer Science Engineering (CSE) exam

Top Courses for Computer Science Engineering (CSE)

Explore Courses
Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev