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.
[quote=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.[/quote]
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
[code]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;
}[/code]
Pra fazer essas comparações com Strings você pode tentar criar um Comparator, tem alguma referências aqui.
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.