Busca Binaria

2 respostas
M

Pessoal preciso de ajuda com a busca binaria.
Ela serve apenas para variaveis inteiras?
Eu poderia usar em uma variavel String?
Desde ja obrigado pela ajuda.

2 Respostas

nel

Marc?:
Pessoal preciso de ajuda com a busca binaria.
Ela serve apenas para variaveis inteiras?
Eu poderia usar em uma variavel String?
Desde ja obrigado pela ajuda.

Oi!

O que é uma busca binária para você?!
Eu entendo que possa ser a busca de um valor em uma determinada posição de um vetor, por exemplo.

Esse tópico é bem interessante, vale a pena a leitura.
Abraços.

daveiga

Você pode usar com qualquer coisa que puder comparar.

Por exemplo, no código da wikipedia pra busca binária em Java

public static int buscaBinaria( int[] array, int valor )
{
        int esq = 0;
        int dir = array.length - 1;
        int valorMeio;
 
        while ( esq <= dir ) {
                valorMeio = esq + ((dir - esq) / 2);
                if ( array[valorMeio] < valor ) { // Você precisa conseguir comparar assim seus objetos
                        esq = valorMeio + 1;
                } else if( array[valorMeio] > valor ) { //E Aqui
                        dir = valorMeio - 1;
                } else {
                        return valorMeio;
                }
        }
        return -1;
}

Pra fazer essas comparações com Strings você pode tentar criar um Comparator, tem alguma referências aqui.

http://www.guj.com.br/java/49300-interface-comparable-x-comparator
http://www.guj.com.br/java/98592-comparator-compare---comparable-compareto
http://www.guj.com.br/java/54036-comparator

Talvez já exista na biblioteca padrão do Java uma forma pronta de ordenar Strings por ordem alfabética, eu desconheço.

Se quiser usar outras formas de ordenação ( dando outros "significados" pra '<' e '>') ou mesmo outras classes como Pessoa, Endereco etc etc você ainda pode fazer uma busca binária, usando um Comparator pra comparar seus objetos.

Criado 28 de junho de 2011
Ultima resposta 28 de jun. de 2011
Respostas 2
Participantes 3