
public class BuscaBinariaIterativa {
	
	public int buscaBinaria( int[] array, int valorProcurado ) {
		int indiceEsq = 0;
		int indiceDir = array.length - 1;
		int indiceMeio;
		
		while ( indiceEsq <= indiceDir) {
			indiceMeio = (indiceEsq + indiceDir) / 2;
			if (array[indiceMeio] < valorProcurado) {
				indiceEsq = indiceMeio + 1;
			} else if (array[indiceMeio] > valorProcurado) {
					indiceDir = indiceMeio - 1;
			} else {
				return indiceMeio;
			}
		}
		return -1;
	}
	
	public static void main(String[] args) {
		
		int[] array = {10, 5, 38, 8, 2, 40, 1};
		
		BuscaBinariaIterativa b = new BuscaBinariaIterativa();
		int indiceRecuperado = b.buscaBinaria(array, 8);
		
		System.out.println( "índice Recuperado [" + indiceRecuperado + "]" );
		
	}
}
