PUERTA | PUERTA-CS-2006 | Pregunta 15

Considere el siguiente fragmento de programa C en el que i, j y n son variables enteras.

for (i = n, j = 0; i >0; i /= 2, j += i);

Sea val(j) el valor almacenado en la variable j después de la terminación del bucle for. ¿Cuál de las siguientes es verdadera?
(A) val(j) = \theta(logn)
(B) vaI(j) = \theta(raíz cuadrada(n))
(C) val(j) = \theta(n)
(D) val(j) = \theta(nlogn)

(A) A
(B) B
(C) C
(D) D

Respuesta: (C)
Explicación: La variable j es inicialmente 0 y el valor de j es la suma de los valores de i. i se inicializa como n y se reduce a la mitad en cada iteración.

j = n/2 + n/4 + n/8 + .. + 1 = Θ(n)

Tenga en cuenta el punto y coma después del bucle for, por lo que no hay nada en el cuerpo.

Igual que la pregunta 1 de https://www.geeksforgeeks.org/c-language-set-6/
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 *