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;
}