En la pregunta anterior, la corrección necesaria en el programa para que funcione correctamente es (GATE CS 2008)
(A) Cambie la línea 6 a: if (Y[k] < x) i = k + 1; de lo contrario j = k-1;
(B) Cambie la línea 6 a: si (Y[k] < x) i = k – 1; de lo contrario j = k+1;
(C) Cambie la línea 6 a: if (Y[k] <= x) i = k; de lo contrario j = k;
(D) Cambie la línea 7 a: } while ((Y[k] == x) && (i < j));
Respuesta: (A)
Explicación: A continuación se muestra la función corregida
f(int Y[10], int x) { int i, j, k; i = 0; j = 9; do { k = (i + j) /2; if( Y[k] < x) i = k + 1; else j = k - 1; } while(Y[k] != x && i < j); if(Y[k] == x) printf ("x is in the array ") ; else printf (" x is not in the array ") ; }
Referencia: http://en.wikipedia.org/wiki/Binary_search_algorithm#Implementations
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