--- title: Linear Search localeTitle: Pesquisa Linear --- ## Pesquisa Linear Suponha que você receba uma lista ou uma matriz de itens. Você está procurando por um item em particular. Como você faz isso? Encontre o número 13 na lista dada. ![Pesquisa Linear 1](https://i.imgur.com/ThkzYEV.jpg) Você apenas olha para a lista e aí está! ![Pesquisa Linear 2](https://i.imgur.com/K7HfCly.jpg) 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. ![Pesquisa Linear 3](https://i.imgur.com/ZOSxeZD.jpg) O primeiro item não coincidiu. Então, mude para o próximo. ![Pesquisa Linear 4](https://i.imgur.com/SwKsPxD.jpg) E assim por diante… Isso é feito até que uma correspondência seja encontrada ou até que todos os itens tenham sido verificados. ![Pesquisa Linear 5](https://i.imgur.com/3AaViff.jpg) 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. for (var i = 0; i < arr.length; i++) { if (arr[i] === item) { // Found it! return i; } } // Item not found in the array. return null; } ``` ### Exemplo em Ruby ```ruby def linear_search(target, array) counter = 0 while counter < array.length if array[counter] == target return counter else counter += 1 end end return nil end ``` ### Exemplo em C ++ ```c++ int linear_search(int arr[],int n,int num) { for(int i=0;i