Busca Binaria de String

0 respostas
java
jairodione

Olá Pessoal!

Como fazer uma busca binaria de String?
Fiz um programa que está descrito abaixo:

//inicio do metodo construtor

public static void main(String args[]) {

int opcao, qte, x;

String num,achado;

boolean certo, achou;

try {

num = JOptionPane.showInputDialog(Quantos numeros deseja gravar?);

qte = Integer.parseInt(num);

int numeros[] = new int[qte];

for (int i = 0; i < qte; i++) {

num = JOptionPane.showInputDialog(Numero[ + i + ]);

numeros[i] = Integer.parseInt(num);

}

num = JOptionPane.showInputDialog(Qual numero deseja pesquisar?);

x = Integer.parseInt(num);

achou = BuscaCompleto.linear(x, numeros);

if (achou) {

JOptionPane.showMessageDialog(null, "Numero presente na relação: " + x);

} else {

JOptionPane.showMessageDialog(null, Numero não presente na relação);

}

certo = true;

num = JOptionPane.showInputDialog(Quantas palavras?);

qte = Integer.parseInt(num);

String palavras[] = new String[qte];

for (int i = 0; i < qte; i++) {

num = JOptionPane.showInputDialog(Palavras[ + i + ]);

palavras[i] = num;

}

num = JOptionPane.showInputDialog(Qual palavra deseja pesquisar?);

achado = binaria(num, palavras);

if (achou) {

JOptionPane.showMessageDialog(null, "Palavra presente na relação: "+achado);

} else {

JOptionPane.showMessageDialog(null, Palavra não presente na relação);

}

certo = true;

} catch (Exception e) {

JOptionPane.showMessageDialog(null, Ocorreu um erro durante a leitura!);

}

}//fim do metodo construtor
//inicio do metodo para busca binaria de String
public static String binaria(int procura, int vetor[]){
    int inicio = 0, fim = vetor.length - 1;
    int meio;
    String status = "Não Encontrado!";
    while(inicio <= fim){
        meio = (inicio + fim) / 2;
        if(procura == vetor[meio])
            status = "Encontrado";
        if(procura < vetor[meio])
            fim = meio - 1;
        else
            inicio = meio + 1;
    }
    return status;
}

Mas ele dá erro na seguinte linha:

achado = binaria(num, palavras);

Alguém pode ajudar?

Criado 12 de dezembro de 2017
Respostas 0
Participantes 1