fiz varios testes no papel..vi varias vezes...e mesmo assim n tenho nem ideia onde ta o erro...pra mim era pra da certo..
ve se sabe onde esta..
Programa:-
era pra c assim...um array organizado em ordem e quero procurar um numero..dai pra otimiza ele procura a metade do array e se o ali estiver um numero maior q o numero que queremos ele procura a metade de novo...
vai repetindo ateh encontrar...
vlw a ajuda
public class ArrayNumeros{
public boolean buscaNumero(int numero, int[] conjunto){
int i=0;
int j=conjunto.length-1;
int k=(i+j)/2;
while(i==k)
{
if(conjunto[k]==numero)
return true;
else if(numero > conjunto[k])
i=(k+1);
else
j=(k-1);
k=(i+j)/2;
}
return false;
}
}
public class InterfaceArrayNumeros{
public static void main(String args[]){
ArrayNumeros execute=new ArrayNumeros();
int[] conjunto = {3,8,10,15,18,23,25,27,30,33,34,37};
int numero=10;
System.out.println( execute.buscaNumero(numero, conjunto) );
}
}