Comment utiliser l'algorithme de recherche en C++
L'algorithme de recherche est un algorithme très important en informatique, qui est utilisé pour trouver des éléments spécifiques dans une collection de données. Le langage C++ fournit de nombreux algorithmes de recherche intégrés, tels que la recherche linéaire, la recherche binaire, etc. Cet article explique comment utiliser les algorithmes de recherche en C++ et fournit des exemples de code spécifiques.
1. Recherche linéaire
La recherche linéaire est un algorithme de recherche simple et direct. Son principe est de comparer l'élément à trouver avec chaque élément de l'ensemble de données un par un jusqu'à ce qu'un élément correspondant soit trouvé ou que l'ensemble des données soit trouvé. parcouru.
C++ propose plusieurs algorithmes de recherche linéaire, dont le plus couramment utilisé est la fonction find. Voici un exemple de code pour une recherche linéaire à l'aide de la fonction find :
#include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> data = {1, 2, 3, 4, 5}; int target = 3; auto result = std::find(data.begin(), data.end(), target); if (result != data.end()) { std::cout << "找到了目标元素 " << target << std::endl; } else { std::cout << "未找到目标元素 " << target << std::endl; } return 0; }
Dans le code ci-dessus, un conteneur de données vectoriel est d'abord créé, qui contient des éléments entiers. Ensuite, un élément cible target est défini et la fonction find est utilisée pour effectuer une recherche linéaire dans le conteneur de données. Si l'élément cible est trouvé, affichez "Élément cible trouvé", sinon affichez "Élément cible non trouvé".
2. Recherche binaire
La recherche binaire est un algorithme de recherche efficace, et son principe est que l'ensemble de données est déjà ordonné. Le principe est d'abord de diviser l'ensemble de données en deux parties, puis de déterminer la relation de taille entre l'élément cible et l'élément intermédiaire pour déterminer dans quelle partie se trouve l'élément cible, puis d'effectuer une recherche binaire dans cette partie jusqu'à ce que l'élément cible est trouvé ou le binaire ne peut pas continuer.
C++ fournit des fonctions telles que l'algorithme de recherche binaire lower_bound et upper_bound. Voici un exemple de code pour la recherche binaire à l'aide de la fonction lower_bound :
#include <iostream> #include <algorithm> #include <vector> int main() { std::vector<int> data = {1, 2, 3, 4, 5}; int target = 3; auto result = std::lower_bound(data.begin(), data.end(), target); if (result != data.end() && *result == target) { std::cout << "找到了目标元素 " << target << std::endl; } else { std::cout << "未找到目标元素 " << target << std::endl; } return 0; }
Dans le code ci-dessus, un conteneur de données vectoriel est également d'abord créé et un élément cible target est défini. Utilisez ensuite la fonction lower_bound pour effectuer une recherche binaire dans le conteneur de données. Si l'élément cible est trouvé et que l'élément pointé par le pointeur de résultat est égal à l'élément cible, alors « élément cible trouvé » est affiché, sinon « élément cible ». introuvable" est affiché.
Il est à noter que l'algorithme de recherche binaire nécessite que l'ensemble de données soit déjà ordonné. Par conséquent, les données doivent être triées avant d’utiliser l’algorithme de recherche binaire.
En résumé, cet article présente comment utiliser l'algorithme de recherche en C++ et fournit des exemples de code spécifiques. Ces algorithmes de recherche sont très utiles dans la programmation pratique et peuvent nous aider à trouver efficacement des éléments spécifiques. Dans le même temps, en comprenant les principes et l’utilisation des algorithmes de recherche, nous pouvons améliorer nos capacités de programmation et mieux résoudre des problèmes pratiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!