Algoritmos | Buscando | Pregunta 6 – Part 1

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

Deja una respuesta

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