Created
August 7, 2019 16:43
-
-
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/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
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