não acho erro!

1 resposta
P

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) );
    }
}

1 Resposta

E

Hi ,

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

Criado 1 de novembro de 2007
Ultima resposta 1 de nov. de 2007
Respostas 1
Participantes 2