PUERTA | PUERTA CS 2008 | Pregunta 84

Considere el siguiente programa en C que intenta ubicar un elemento x en una array Y[] mediante la búsqueda binaria. El programa es erróneo.

1.   f(int Y[10], int x) {
2.     int i, j, k;
3.     i = 0; j = 9;
4.     do {
5.             k =  (i + j) /2;
6.             if( Y[k] < x)  i = k; else j = k;
7.         } while(Y[k] != x && i < j);
8.     if(Y[k] == x) printf ("x is in the array ") ;
9.     else printf (" x is not in the array ") ;
10. }

¿En cuál de los siguientes contenidos de Y y x falla el programa?
(A) Y es [1 2 3 4 5 6 7 8 9 10] y x < 10
(B) Y es [1 3 5 7 9 11 13 15 17 19] y x < 1
(C) Y es [2 2 2 2 2 2 2 2 2 2] y x > 2
(D) Y es [2 4 6 8 10 12 14 16 18 20] y 2 < x < 20 y x es par

Respuesta: (C)
Explicación: Ver pregunta 3 de https://www.geeksforgeeks.org/data-structures-and-algorithms-set-21/
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 *