Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Busca sequencial em um veto desordenado que retorna a posição da primeira ocorrência de um elemento procurado usando uma estratégia similar a da busca binaria.
Dica: Se não é o elemento do meio, procure dos dois lados e retorne o menor dos índices encontrados. Se for o elemento do meio, continue a busca apenas do lado esquerdo, retornando a posição de lá se encontrar e o meio senão encontrar
#include <stdio.h>
int busca(int vetor[], int n, int posi, int inicio, int fim)
{
posi = (inicio+fim)/2;
if(vetor[posi] == n)
{
return busca(vetor, n, posi, inicio, posi);
}
else
{
return busca(vetor, n, posi, posi, fim);
}
}
int main ()
{
int vetor={5,6,8,9}, n, inicio=0, fim=4, posi;
scanf("%d", &n);
printf("%d", busca(vetor, n, posi, inicio, fim));
}
Isso foi o máximo que eu consegui fazer nas minhas tentativas.
Carregando comentários...