não acho erro!

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]

Hi ,

O primeiro erro : while(i==k) .
Essa condicao so vai ser verdadeira se j = 0 , isto signifca que conjunto vai ter zero elementos.