Pesquisa binaria

Sr´s, bom dia !!

Eu preciso fazer uma pesquisa binária, procurando dentro de um vetor VET alguns números do outro vetor NUM:

[code]
public class PesquisaBinaria {

public void pesquisarNumeros(int [] num, int [] vet){

  int inicio = 0;
  int meio = 0;
  int fim = vet.length - 1;
  
  
    while(inicio <= fim){
        meio = (fim + inicio) / 2;
    
        if(vet[meio] == num){
        System.out.println("Número encontrado : " + num);
        break;
    }
    
    if(vet[meio] < num){
        inicio = meio + 1;
    }else{
        fim = meio - 1;    
    }
    }
  
        if(inicio > fim){
        System.out.println("Número não encontrado : " + num);
  }    
}

}[/code]

porém ele me dá um erro dizendo que "IMCOMPARABLE TYPES INT AND INT[].

E eu estou digitando os números deste vetor NUM, atráves de um Scanner conforme abaixo:

 public static void main(String[] args){
        
    Scanner input = new Scanner(System.in);    
    int n = 0;
    int [] vet = {1,3,6,7,8,10,11,12,15,16,17,18,19,20,23,24,25,27,29,30};  
     
    System.out.println("Quantidade de números para a pesquisa : ");
    n = input.nextInt();
    int [] num = new int[n];
   
    System.out.println("Digite a sequência : ");
    for(int i = 0; i<n;i++){
        num[i] = input.nextInt();
    }
        
    PesquisaBinaria pesq = new PesquisaBinaria();
    pesq.pesquisarNumeros(num, vet);

Só que não está dando certo, o que eu preciso fazer para que na minha sequencia binária, ele consiga pesquisar os números que estou digitando dentro do vetor acima ?

Obrigado.

Algumas considerações sobre seu código

na linha 10, você compara inicio <= fim e dentro do while não manipula o inicio, ai vc tem um loop infinito !
quando se conhece o temanho do array prefira um for, é seguro e confiável

for(int i = 0; i < vet.length; i++) {//sem chance se loop infinito

...

}

na linha 13, é onde você está tendo sua exception afinal o conteudo de vet[meio] é um int, porem num é um array ! você precisa algo como num[i], ai sim não tem exception

de uma olhada neste link, http://pt.wikipedia.org/wiki/Pesquisa_bin%C3%A1ria , ele esplica o algoritmo de busca binária, note que apesar dele ter usado um while ele altera os valores das variáveis de comparação a cada loop, ai funciona :slight_smile:

Espero ter ajudado, t+