Implémenter la recherche linéaire dans des tableaux
Dans cette étape, vous apprendrez à implémenter un algorithme de recherche linéaire en C++. La recherche linéaire est une méthode simple pour trouver un élément dans un tableau en vérifiant chaque élément séquentiellement jusqu'à ce que l'élément cible soit trouvé ou que la fin du tableau soit atteinte.
Ouvrez le WebIDE et créez un nouveau fichier appelé linear_search.cpp
dans le répertoire ~/project
:
touch ~/project/linear_search.cpp
Ajoutez le code suivant au fichier linear_search.cpp
:
#include <iostream>
int linearSearch(int arr[], int size, int target) {
// Parcourir chaque élément du tableau
for (int i = 0; i < size; i++) {
// Vérifier si l'élément actuel correspond à la cible
if (arr[i] == target) {
return i; // Retourner l'index si trouvé
}
}
return -1; // Retourner -1 si la cible n'est pas trouvée
}
int main() {
// Créer un tableau de notes d'étudiants
int scores[] = {85, 92, 78, 95, 88, 76, 90};
int size = sizeof(scores) / sizeof(scores[0]);
// Note cible à rechercher
int targetScore = 78;
// Effectuer la recherche linéaire
int result = linearSearch(scores, size, targetScore);
// Afficher les résultats de la recherche
if (result!= -1) {
std::cout << "Note cible " << targetScore
<< " trouvée à l'index " << result << std::endl;
} else {
std::cout << "Note cible " << targetScore
<< " non trouvée dans le tableau" << std::endl;
}
// Essayer une autre recherche
int missingScore = 100;
result = linearSearch(scores, size, missingScore);
if (result!= -1) {
std::cout << "Note " << missingScore
<< " trouvée à l'index " << result << std::endl;
} else {
std::cout << "Note " << missingScore
<< " non trouvée dans le tableau" << std::endl;
}
return 0;
}
Concepts clés de la recherche linéaire :
- Vérifie chaque élément du tableau séquentiellement
- Retourne l'index de l'élément cible si trouvé
- Retourne -1 si l'élément cible n'est pas dans le tableau
- Complexité temporelle : O(n) - temps linéaire
- Simple et fonctionne pour les tableaux non triés
Compilez et exécutez le programme :
g++ linear_search.cpp -o linear_search
./linear_search
Exemple de sortie :
Note cible 78 trouvée à l'index 2
Note 100 non trouvée dans le tableau
Remarques importantes sur la recherche :
- La recherche linéaire est simple mais inefficace pour les grands tableaux
- Adaptée pour les petits tableaux ou les collections non triées
- Il existe des algorithmes de recherche plus efficaces pour les tableaux triés