Agora, como você diz a um computador para encontrá-lo?
Um computador não pode olhar mais do que o valor em um determinado instante de tempo. Então, é preciso um item da matriz e verifica se é o mesmo que você está procurando.
Neste algoritmo, você pode parar quando o item é encontrado e, em seguida, não há necessidade de procurar mais.
Então, quanto tempo levaria para fazer a operação de busca linear? Na melhor das hipóteses, você poderia ter sorte e o item que você está olhando talvez na primeira posição na matriz! Mas, na pior das hipóteses, você teria que olhar para cada item antes de encontrar o item no último lugar ou antes de perceber que o item não está na matriz.
A complexidade, portanto, da pesquisa linear é: O (n).
Se o elemento a ser pesquisado preside o primeiro bloco de memória, a complexidade seria: O (1).
O código para uma função de pesquisa linear em JavaScript é mostrado abaixo. Esta função retorna a posição do item que estamos procurando no array. Se o item não estiver presente na matriz, a função retornará null.
### Exemplo em Javascript
```javascript
function linearSearch(arr, item) {
// Go through all the elements of arr to look for item.
E se você estiver pesquisando as várias ocorrências de um elemento? Por exemplo, você quer ver quantos 5 estão em uma matriz.
Alvo = 5
Matriz = \[1, 2, 3, 4, 5, 6, 5, 7, 8, 9, 5\]
Este array tem 3 ocorrências de 5s e queremos retornar os índices (onde estão no array) de todos eles. Isso é chamado de pesquisa linear global e você precisará ajustar seu código para retornar uma matriz dos pontos de índice nos quais ele encontra o elemento de destino. Quando você encontrar um elemento de índice que corresponda ao seu destino, o ponto de índice (contador) será adicionado na matriz de resultados. Se não corresponder, o código continuará a avançar para o próximo elemento da matriz, adicionando 1 ao contador.
```ruby
def global_linear_search(target, array)
counter = 0
results = []
while counter <array.length
if array[counter] == target
results <<counter
counter += 1
else
counter += 1
end
end
if results.empty?
return nil
else
return results
end
end
```
## Por que a pesquisa linear não é eficiente
Não há dúvida de que a busca linear é simples, mas porque compara cada elemento um a um, consome tempo e, portanto, não é muito eficiente. Se tivermos que encontrar um número, digamos, o número e número de 1000000 estiver no último local, a técnica de busca linear se tornará bastante entediante. Então, aprenda também sobre bubble sort, quick sort etc.
#### Vídeo relevante:
#### Outros recursos
[Pesquisa Linear - CS50](https://www.youtube.com/watch?v=vZWfKBdSgXI)