int PesquisaBinaria ( int k[], int chave , int N)
{
int inf,sup,meio;
inf=0;
sup=N-1;
while (inf<=sup)
{
meio=(inf+sup)/2;
if (chave==k[meio])
return meio;
else if (chave<k[meio])
sup=meio-1;
else
inf=meio+1;
}
return -1; /* não encontrado */
}
Busca binaria em linguagem C
Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca (Divisão e conquista) comparando o elemento buscado (chave) com o elemento no meio do vetor
6 comentários:
Obrigado pelo post.
procurei em alguns sites, e o seu exemplo foi o mais facil de pegar a logica.
Tnks
Olá, gostaria de saber se nos blocos condicionais IF não há a necessidade de se colocar chaves { e }. Fora isso, muito legal a explicação e o código.
Abraços
[quote]
Anônimo disse...
Olá, gostaria de saber se nos blocos condicionais IF não há a necessidade de se colocar chaves { e }[/quote]
Nesse caso não é OBRIGATÓRIO, pois tem só uma linha de comando abaixo do If. Mas se quiser colocar pode. Só é obrigatório quando tem mais de uma linha.
e como eu faço isso quando quero procurar o nome dentro de uma matriz 15x2 onde ele vai me reotrnar atraves da pesquisa nome e endereço?
HO HO HO
Nossa, me ajudou bastante. É ótimo quando encontro algoritmos que tenham clareza em sua resolução! Muito obrigada.
Postar um comentário