public class BusquedaBinaria { public static int binarySearch(int[] array, int minLimit, int maxLimit, int value) { if (maxLimit >= 0 && array[minLimit] <= value && array[maxLimit] >= value) { int mid = getMidValue(minLimit, maxLimit); System.out.println(String.format("Límite inferior %d límite superior %d valor en el arreglo %d valor a buscar %d", minLimit, maxLimit, array[mid], value)); if (array[mid] == value) { return mid; } else if (array[mid] < value) { return binarySearch(array, mid + 1, maxLimit, value); } return binarySearch(array, minLimit, mid - 1, value); } return -1; } public static int getMidValue(int minLimit, int maxLimit) { return (maxLimit + minLimit) / 2; } public static void main(String[] args) { int value = 410; int[] array = { 10, 15, 20, 40, 50, 100, 120, 200, 400, 500, 600, 800, 2222}; int result = binarySearch(array, 0, array.length - 1, value); System.out.println(String.format("Result %d", result)); } }