Pesquisa binaria

galera presciso aprender como faço pesquisa binaria, e nao sei nem oq eh …sera q alguem poderia me indicar um artigo, ou dar uma boa explicaçao, ou sei lah fala algum jeito q eu possa aprender a fazer isso !!!vou usala emm vb … mais como eu programo em java, e pj eh muito bom resolvi perguntar vlws falo galera

Sugiro ao nobre colega consultar o Oráculo, ou seja, o Google, usando as frases “pesquisa binária” ou “binary search”. Tem toneladas de links sobre isso.

Java tem métodos para isso em java.util.Arrays. Aliás, a busca binária é a meu ver um dos mais poderosos e elegantes algoritmos existentes.

binario é a linguagem do computador :twisted: :metralha:
pesquise no google a respeito
1 significa fluxo ligado 0 o inverso!


[color=“red”]black metal is forever [/color]

[code]
public bool pesquisaBinaria(ArrayList array_ids, int id_procurado)
{
bool encontrou = false;
int inf = 0, sup = array_ids.Count - 1, meio = ( array_ids.Count - 1 )/2;

if (array_ids.Count > 0)
{
while (inf <= sup && !encontrou)
{
meio = ( inf + sup )/2;
if ( (int)array_ids[meio] == id_procurado )
{
encontrou = true;
return true;
}
else
{
if ( (int)array_ids[meio] < id_procurado )
inf = meio + 1;
else
sup = meio - 1;
}
}
}
return false;
}[/code]

Po eu vou tentar explicar com um exemplo.

É o seguinte, vamos supor que você tenha um vetor de char, ordenado alfabeticamente e vc quer procurar uma letra. A pesquisa acontecerá da seguinte maneira, ele irá comparar a sua letra com a letra que está na posição do meio no vetor, se sua letra for menor ele pesquisará a parte anterior, se for maior ele pesquisará a parte posterior.
Com esse procedimento, você estará eliminando pela metade uma pesquisa, que por exemplo, duraria 1 segundo para varrer todo o vetor.

Espero ter ajudado :roll: