Busca linear

A busca linear é um algoritmo de força bruta não muito eficiente, mas com grande simplicidade, sendo utilizada regularmente por programadores.

Categoria de Programação

Postado em 04 setembro 2022

Atualizado em 04 setembro 2022

Palavras-chave: busca,linear,search,algoritmo,programacao,ciencia,computacao,informatica

Visualizações: 1112



A digitalização tem sido adotada como solução em muitos campos do mercado. Automóveis, eletrodomésticos e celulares recentes, geralmente possuem um computador embutido, trazendo muitas vantagens como integração com outros dispositivos, possibilitando a internet das coisas.

Essa digitalização exige mais programadores na área e estimula o campo de informática a evoluir em muitos aspectos. Hoje, diversas linguagens de programação estão disponíveis para implementação de sistemas, cada linguagem contém suas vantagens e são adequados para determinadas tarefas.

Por mais que as linguagens de programação tenham suas diferenças, processos de repetição (loops) certamente estão presentes em todas elas. Essas repetições são essenciais quando o assunto é sobre algoritmos. Quando falamos sobre algoritmos de repetição, sem dúvida a busca linear é o algoritmo mais comum.

O que é a busca linear na ciência da computação?

A busca linear, também chamada de busca sequencial é um algoritmo de força bruta, portanto não sendo considerado um algoritmo muito eficiente em alguns casos.

Esse algoritmo pesquisa cada elemento em uma estrutura de dados até encontrar o elemento procurado. Portanto, sendo linear e necessitando mais tempo de processo para chegar ao resultado final conforme os dados de entrada vão aumentando.

A busca linear é eficiente?

Se medirmos a eficiência da busca linear usando o método da notação do O grande teremos O(n), que na escala é classificado como “aceitável”.

Apesar de não ser um algoritmo tão eficiente é o mais fácil de implementar graças a sua simplicidade.

Quando utilizar a busca linear?

As máquinas recentes podem executar código com uma velocidade extremamente alta, portanto quando a quantidade de dados de entrada não é muito grande, o desempenho da máquina não muda significativamente.

A busca linear é um algoritmo simples que pode ser implementado rapidamente, agilizando o desenvolvimento de sistemas.

Quando não utiliza a busca linear?

Não é recomendável utilizar a busca linear quando a quantidade de dados é muito grande.

Por exemplo, quando há a necessidade de buscar determinados elementos em estrutura de dados contendo 30.000 linhas (records) de dados, outros algoritmos mais eficientes devem ser adotados, como a busca binária.

Como implementar a busca linear na prática?

A implementação de um algoritmo de busca linear simples necessita apenas de uma repetição e uma condição para ser estabelecida.

function elementoExiste(array $lista, string $elementoProcurado): boolean {
    // Repetição
    foreach ($lista as $linha) {
	    // Condição
	    if ($linha == $elementoProcurado) {
		    // Se elemento existir, retorna verdadeiro
		    return true;
	    }
    }
    
    // Se não existir o elemento na lista retorna falso
	return false;
}

// lista simples de frutas
$lista = [
    'maçã',
    'laranja',
    'melancia',
    'abacaxi'
];

// resultado: true
echo elementoExiste($lista, 'melancia');

busca linear algoritmo

Conclusão

A busca linear é um algoritmo de força bruta não muito eficiente, mas com grande simplicidade, sendo utilizada regularmente por programadores.

Conforme os dados de entrada ficam maiores, mais tempo de processamento será necessário para a busca linear chegar até o resultado.

Projetos práticos

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Criando um jogo de guerra nas estrelas em javascript usando a biblioteca p5.js

Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.

Criando um sistema de mini garagem automatizada integrada com um sistema de monitoramento independente

Desenvolvimento de um sistema de monitoramento que exibi todos os eventos que acontecem na garagem automatizada, como abertura de portões ou ocupação de vagas.

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Integrando Laravel com o protocolo MQTT para comunicação entre dispositivos

Projeto de comunicação entre dois dispositivos ESP8266 e Raspberrypi4. Laravel irá funcionar como servidor e receptor de dados de temperatura e umidade coletados com o DHT11.

Veja também

Antigamente, as linguagens de programação não tinham um modo tão flexível de escrever como hoje

A linguagem de programação orientada a objetos revolucionou o mundo da programação, sendo o tipo de linguagem mais utilizada na atualidade

Um algoritmo não pode ser composto por instruções ambíguas, isso pode trazer resultados inesperados

Os algoritmos na ciência da computação são o principal meio para o desenvolvedor poder escrever instruções para o computador, operando a sua maneira

Algoritmo A* (A-estrela)

Algoritmo que busca o caminho com o menor custo entre dois pontos. É usado em jogos e aplicativos de navegação para calcular a menor distância possível.

Algoritmo

O algoritmo é um conjunto de instruções escritas por um programador com intuito de solucionar um problema ou obter um resultado previsto.

Variáveis na programação

As variáveis são elementos responsáveis por armazenar informações temporariamente ou perpetuamente durante a execução de um programa ou algoritmo.

Programação orientada a objetos

A programação orientada a objetos possui um contexto bastante semelhante com a vida real, facilitando a sua implementação e interpretação.