PUERTA | PUERTA CS 2008 | Pregunta 74

Considere el siguiente programa en C

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] ;
}

El tiempo de ejecución de f1(n) y f2(n) son
(A) \theta(n) y \theta(n)
(B) \theta(2^n) y \theta(n)
(C) \theta(n) y \theta(2^n)
(D ) \theta(2^n) y \theta(2^n)
(A) A
(B) B
(C) C
(D) D

Respuesta: (B)
Explicación: consulte la pregunta 3 de https://www.geeksforgeeks.org/c -language-set-5/
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *