A busca linear ou busca sequencial é a forma mais simples de se buscar um resultado em uma lista de dados. O vetor é percorrido comparando cada dado do vetor até encontrar o resultado desejado e retornando o índice do valor encontrado. O dado a ser encontrado é passado como parâmetro para função. O melhor caso nessa situação é se o dado que está sendo procurando é a primeira opção do vetor, e o pior resultado ocorre se este for o ultimo dado do vetor. A complexidade da busca linear é O(n).
Abaixo a implementação desse algoritmo e sua chamada:
#define TAM 10
int buscaLinear(int tamanho, int vetor[], int valor)
{
int i;
for(i = 0; i < tamanho; i++)
if(vetor[i] == valor)
return i;
else if(i == tamanho-1)
return -1;
}
int main(int argc, char *argv[])
{
int indice, v[TAM] = {9,7,5,2,4,6,10,3,1,8};
indice = buscaLinear(TAM, v, 6); //chamando a função de busca
printf("Valor esta na posicao %d", indice);
getch();
return 0;
}
Veja também o artigo sobre
Busca binária.
Nenhum comentário:
Postar um comentário