Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2024/2025

Solución del ejercicio 3.b del tema 1

int busquedaBinariaIterativa(vector<int> v, int dato) {  // Esto es malo, lo veremos al medir tiempos

   int inicio = 0,
       fin = v.size() - 1;

   while (inicio <= fin) {
      int medio = (inicio + fin) / 2;
      if (v[medio] < dato)
         inicio = medio + 1;
      else if (v[medio] > dato)
         fin = medio - 1;
      else
         return medio;
   }

   return -1;

}
      

En esta solución, el operador / realiza la división entera porque sus dos operandos (numerador y denominador) son de tipo entero. Al hacer la división entera, los decimales se pierden. Por ejemplo, el resultado de 25/2 es 12.