Implementar Busca Linear em Arrays
Nesta etapa, você aprenderá como implementar um algoritmo de Busca Linear (Linear Search) em C++. A Busca Linear é um método simples para encontrar um elemento em um array, verificando cada elemento sequencialmente até que o alvo seja encontrado ou o final do array seja alcançado.
Abra o WebIDE e crie um novo arquivo chamado linear_search.cpp no diretório ~/project:
touch ~/project/linear_search.cpp
Adicione o seguinte código ao arquivo linear_search.cpp:
#include <iostream>
int linearSearch(int arr[], int size, int target) {
// Iterate through each element in the array
for (int i = 0; i < size; i++) {
// Check if current element matches the target
if (arr[i] == target) {
return i; // Return the index if found
}
}
return -1; // Return -1 if target is not found
}
int main() {
// Create an array of student scores
int scores[] = {85, 92, 78, 95, 88, 76, 90};
int size = sizeof(scores) / sizeof(scores[0]);
// Target score to search
int targetScore = 78;
// Perform linear search
int result = linearSearch(scores, size, targetScore);
// Display search results
if (result != -1) {
std::cout << "Target score " << targetScore
<< " found at index " << result << std::endl;
} else {
std::cout << "Target score " << targetScore
<< " not found in the array" << std::endl;
}
// Try another search
int missingScore = 100;
result = linearSearch(scores, size, missingScore);
if (result != -1) {
std::cout << "Score " << missingScore
<< " found at index " << result << std::endl;
} else {
std::cout << "Score " << missingScore
<< " not found in the array" << std::endl;
}
return 0;
}
Conceitos chave da Busca Linear:
- Verifica cada elemento do array sequencialmente
- Retorna o índice do alvo se encontrado
- Retorna -1 se o alvo não estiver no array
- Complexidade de tempo: O(n) - tempo linear
- Simples e funciona para arrays não ordenados
Compile e execute o programa:
g++ linear_search.cpp -o linear_search
./linear_search
Exemplo de saída:
Target score 78 found at index 2
Score 100 not found in the array
Notas importantes sobre busca:
- A Busca Linear é direta, mas ineficiente para arrays grandes
- Adequada para arrays pequenos ou coleções não ordenadas
- Existem algoritmos de busca mais eficientes para arrays ordenados