
Untitled
By: a guest on
May 8th, 2012 | syntax:
C | size: 1.18 KB | hits: 15 | expires: Never
#include <stdio.h>
#include <stdlib.h>
#define MAX 12
int busca_binaria(int vetor[], int n, int k)
{
int min=0, max = n-1, med, i;
while(min <= max)
{
med = (min + max) /2; /* cálculo da posição média */
if(k == vetor[med])
return med; /* pesquisa com sucesso! Achou o numero! */
if(k < vetor[med])
max = med -1; /* atualiza os limites do intervalo de pesquisa */
else
min = med +1;
printf("\n%d", med);
}
return -1; /*Falha na pesquisa */
}
int main()
{
int vetor[] = {1,3,4,6,7,9,11,36,42, 49, 52, 60};
int i, pesq;
for(i=0;i<MAX;i++)
{
printf("\nPosicao %d do vetor: %d ", i, vetor[i]);
}
printf("\n\n\nNumero para pesquisar no vetor: ");
scanf("%d", &pesq);
int posicao = busca_binaria(vetor, MAX, pesq);
if (posicao == -1)
printf("\n NAO ENCONTRADO");
else
printf("\n\nEncontrado na posicao %d do vetor!!", posicao);
getch();
}