No mundo de hoje, Busca linear tornou-se cada vez mais importante. Desde as suas origens até à sua relevância hoje, Busca linear tem sido objeto de estudo, debate e controvérsia. O seu impacto abrange múltiplos aspectos, desde a sociedade, política, economia, cultura, tecnologia e muito mais. Neste artigo exploraremos a importância de Busca linear e sua influência em diferentes áreas. Através de uma análise profunda e detalhada, procuraremos compreender melhor o papel que Busca linear desempenha na nossa vida quotidiana e no mundo em geral.
Na área de informática, ou Ciência da Computação, costuma-se usar o termo busca linear (ou busca sequencial) para expressar um tipo de pesquisa em vetores ou listas de modo sequencial, i. e., elemento por elemento, de modo que a função do tempo em relação ao número de elementos é linear, ou seja, cresce proporcionalmente. Num vetor ordenado, essa não é a pesquisa mais eficiente, a pesquisa (ou busca) binária, por exemplo, é um tipo de pesquisa com o gráfico de tempo logarítmo.
No melhor caso, o elemento a ser buscado é encontrado logo na primeira tentativa da busca. No pior caso, o elemento a ser buscado encontra-se na última posição e são feitas N comparações, sendo N o número total de elementos. No caso médio, o elemento é encontrado após (N+1)/2 comparações. O algoritmo de busca linear é um algoritmo O(n).
/**
* Retorna -1 caso não encontre ou a posição, caso encontre.
*/
int procura(char vetor, int tamanho, char elementoProcurado) {
int i;
for (i = 0; i < tamanho; i++) {
if (vetor == elementoProcurado) {
return i;
}
}
return -1;
}
function procura(vetor :array of integer; elementoProcurado: integer ): Integer; {supondo que o vetor tem tamanho 10}
var
i : integer;
retorno: integer;
begin
retorno := -1;
for i := 1 to 10 do
begin
if (vetor = elementoProcurado) then
begin
retorno := i; {retorna o índice do elemento procurado}
break;
end;
end;
procura := retorno;
end.
public int procura(Object vetor, Object elementoProcurado) {
int tamanhoVetor = vetor.length; /* o for, não precisa verificar o tamanho do vetor toda
vez que for comparar. */
for (int i = 0; i < tamanhoVetor; i++)
if (vetor.equals(elementoProcurado))
return i;
return -1; // Não achou, retorna -1
}
<?php
/**
* Retorna -1 caso não encontre ou a posição
* caso encontre.
*/
function buscaSequencial($elementoProcurado, array $vetor) {
$tamanhoVetor = count($vetor);
for ($i = 0; $i < $tamanhoVetor; $i++) {
if ($vetor == $elementoProcurado) {
return $i;
}
}
return -1;
}
$a = array(1, 2, 3, 4, 5, 6);
print "<br /> buscaSequencial(4, ); return: "; var_dump(buscaSequencial(4, $a));
print "<br /> buscaSequencial(6, ); return: "; var_dump(buscaSequencial(6, $a));
print "<br /> buscaSequencial(1, ); return: "; var_dump(buscaSequencial(1, $a));
print "<br /> buscaSequencial(8, ); return: "; var_dump(buscaSequencial(8, $a));
?>
# Retorna None caso não encontre ou a posição, caso encontre.
def procura(lista, elemento):
assert isinstance(lista, list)
for indice in range(len(lista)):
if lista == elemento:
return indice
else:
return None