Home Algoritmos y Estructuras de Datos (VJ1215)

Curso 2023/2024

Solución del ejercicio 4 del tema 1

int busquedaBinariaRecursiva(const vector<int> & v, int dato, int inicio, int fin) {

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

   return -1;

}

int busquedaBinariaRecursiva(const vector<int> & v, int dato) {

   return busquedaBinariaRecursiva(v, dato, 0, v.size() - 1);

}
      

La segunda función sirve simplemente para que no tengamos que pasar como argumentos 0 y la última posición del vector cada vez que queremos hacer una búsqueda. No es imprescindible hacerla pero sí recomendable.