Weslley Ferraz
Weslley Ferraz13/01/2024 11:21
Compartilhe

Análise de Algoritmos: Tipos de Busca - Busca Linear

  • #Estrutura de dados
  • #Lógica de Programação

Hoje, exploraremos os diferentes tipos de busca, começando pela busca linear. Este algoritmo realiza a busca de forma sequencial, percorrendo os itens a serem consultados do início ao fim, um por um.

A lógica por trás da busca linear é simples: cada item é verificado, e se algum deles atender à condição de correspondência, esse item é retornado. Caso contrário, a pesquisa continua até o final dos itens. A eficácia da busca linear depende diretamente da posição do item desejado.

Por exemplo, se o item a ser buscado estiver na posição 3, o algoritmo fará quatro comparações antes de encontrar a correspondência. Essa característica torna a busca linear eficiente para listas pequenas, mas pode se tornar menos eficaz em conjuntos de dados maiores.

Complexidade da Busca Linear: A complexidade de tempo da busca linear é O(n), onde "n" representa o número de elementos na lista. Isso significa que o tempo de execução aumenta linearmente com o tamanho da lista. Portanto, em listas muito grandes, a busca linear pode se tornar ineficiente.

Vantagens e Desvantagens da Busca Linear:

  • Vantagens:
  • Simplicidade: A busca linear é fácil de entender e implementar.
  • Funciona para listas não ordenadas: A busca linear não exige que a lista esteja ordenada.
  • Desvantagens:
  • Ineficiência em grandes conjuntos de dados: À medida que a lista cresce, a busca linear pode exigir um tempo significativo.
  • Não aproveita a ordenação: Em listas ordenadas, outros algoritmos de busca podem ser mais eficientes.
#include <stdio.h>


int buscaLinear(int arr[], int tamanho, int elemento){
  for (int i = 0; i < tamanho; i++){
      if (arr[i] == elemento){
          return i;
      }
  }
  return -1;
}


int main(){
  int lista[] = {10, 20, 30, 40, 50};
  int tamanho = sizeof(lista) / sizeof(lista[0]);
  int elementoProcurado = 30;


  int resultado = buscaLinear(lista, tamanho, elementoProcurado);


  if (resultado != -1) {
      printf("O elemento encontrado na posição %d\n", resultado);
  }else{
      printf("O elemento não encontrado na lista.\n");
  }
  return 0;
}
Compartilhe
Comentários (0)