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

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 */
}

6 comentários:

Anônimo disse...

Obrigado pelo post.
procurei em alguns sites, e o seu exemplo foi o mais facil de pegar a logica.

Tnks

Anônimo disse...

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

Antedeguemon disse...

[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.

Anônimo disse...

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?

Anônimo disse...

HO HO HO

Unknown disse...

Nossa, me ajudou bastante. É ótimo quando encontro algoritmos que tenham clareza em sua resolução! Muito obrigada.

Postar um comentário

Postagens recentes Postagens antigas Inicio
Geo Visitors Map