Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created August 7, 2019 16:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save parzibyte/141c0b0faa1e2ac031eb8db1a3b10875 to your computer and use it in GitHub Desktop.
Save parzibyte/141c0b0faa1e2ac031eb8db1a3b10875 to your computer and use it in GitHub Desktop.
Búsqueda binaria recursiva en Java con arreglos de enteros - https://parzibyte.me/blog/2018/10/31/busqueda-binaria-arreglos-java/
/**
Algoritmo de búsqueda binaria recursiva en Java
@author parzibyte
@web parzibyte.me/blog
*/
public static int busquedaBinariaRecursiva(int[] arreglo, int busqueda, int izquierda, int derecha){
// Si izquierda es mayor que derecha significa que no encontramos nada
if(izquierda > derecha){
return -1;
}
// Calculamos las mitades...
int indiceDelElementoDelMedio = (int) Math.floor((izquierda + derecha) / 2);
int elementoDelMedio = arreglo[indiceDelElementoDelMedio];
// Ver si está en la mitad
if(elementoDelMedio == busqueda){
return indiceDelElementoDelMedio;
}
// Si no, entonces vemos si está a la izquierda o derecha
if(busqueda < elementoDelMedio){
derecha = indiceDelElementoDelMedio - 1;
return busquedaBinariaRecursiva(arreglo, busqueda, izquierda, derecha);
}else{
izquierda = indiceDelElementoDelMedio + 1;
return busquedaBinariaRecursiva(arreglo, busqueda, izquierda, derecha);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment