StreakPeaked· Practice

ExamsGATEEngineering Mathematics

Common Data for Questions 74 and 75: Consider the following functions: int f1 ( int n) { if (n == 0 || n == 1) return n; else return (2*f1(n-1) + 3*f1(n-2)); } int f2 ( int n) { int i; int X[N], Y[N], Z[N]; X[0] = Y[0] = Z[0] = 0; X[1] = 1; Y[1] = 2; Z[1] = 3; for (i = 2; i <= n; i++){ X[i] = Y[i-1] + Z[i-2]; Y[i] = 2 * X[i]; Z[i] = 3 * X[i]; } return X[n]; } The running time of f1(n) and f2(n) are

  1. Θ(n) and Θ(n)
  2. Θ(2ⁿ) and Θ(n)
  3. Θ(n) and Θ(2ⁿ)
  4. Θ(2ⁿ) and Θ(2ⁿ)

Correct answer: Θ(2ⁿ) and Θ(n)

Solution

The function f1(n) exhibits exponential growth due to its recursive calls, leading to a time complexity of Θ(2ⁿ). In contrast, f2(n) uses an iterative approach with a linear loop, resulting in a time complexity of Θ(n).

Related GATE Engineering Mathematics questions

⚔️ Practice GATE Engineering Mathematics free + battle 1v1 →