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.
Busca Binaria
2 Respostas
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.
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.