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
[code]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;
}
}
[/code]
[code]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) );
}
}[/code]