public class BuscaBinariaRecursiva {

	private int buscaBinariaRecursiva(int[] array, int indiceEsq, int indiceDir, int valorProcurado) {
		int indiceMeio = (indiceDir + indiceEsq) / 2;

		if (indiceEsq > indiceDir)
			return -1;
		
		else if (array[indiceMeio] == valorProcurado)
			return indiceMeio;
		
		else if (array[indiceMeio] < valorProcurado)
			return buscaBinariaRecursiva(array, indiceMeio + 1, indiceDir, valorProcurado);
		
		else
			return buscaBinariaRecursiva(array, indiceEsq, indiceMeio - 1, valorProcurado);
	}

	public static void main(String[] args) {
		
		int[] array = {10, 5, 38, 8, 2, 40, 1};
		
		BuscaBinariaRecursiva b = new BuscaBinariaRecursiva();
		int indiceRecuperado = b.buscaBinariaRecursiva(array, 0, 6, 8);
		
		System.out.println( "índice Recuperado [" + indiceRecuperado + "]" );
		
	}

}
