Comment utiliser l'algorithme de recherche binaire en C++
Comment utiliser l'algorithme de recherche binaire en C++
L'algorithme de recherche binaire (Binary Search) est un algorithme de recherche efficace qui divise un ensemble de données ordonné en deux moitiés, chaque fois au milieu de l'ensemble de données Effectuer une recherche et rétrécir continuellement la plage de recherche en comparant la valeur en position médiane avec la valeur cible jusqu'à ce que la valeur cible soit trouvée ou qu'il soit déterminé que la valeur cible n'existe pas. Ce qui suit présente comment utiliser l'algorithme de recherche binaire en C++ et donne des exemples de code spécifiques.
- Déterminer la portée de la recherche
Avant d'utiliser l'algorithme de recherche binaire, vous devez d'abord vous assurer que l'ensemble de données à rechercher est ordonné. Par exemple, nous avons un tableau ordonné de nombres entiers dans lequel nous voulons rechercher une certaine valeur cible cible. - Définir la fonction de recherche binaire
En C++, nous pouvons définir une fonction pour implémenter l'algorithme de recherche binaire. Les paramètres d'entrée de cette fonction incluent le tableau à rechercher, les positions de début et de fin du tableau et la valeur cible cible. La valeur de retour de la fonction est l'index de la valeur cible dans le tableau. Si la valeur cible n'existe pas, une valeur spécifique (telle que -1) peut être renvoyée.
La définition spécifique de la fonction est la suivante :
int binarySearch(int nums[], int start, int end, int target) { // 定义二分搜索的起始位置和结束位置 int left = start; int right = end; while (left <= right) { // 计算中间位置 int mid = left + (right - left) / 2; // 如果中间位置的值等于目标值,直接返回索引 if (nums[mid] == target) { return mid; } // 如果中间位置的值大于目标值,更新结束位置 else if (nums[mid] > target) { right = mid - 1; } // 如果中间位置的值小于目标值,更新起始位置 else { left = mid + 1; } } // 目标值不存在,返回-1 return -1; }
- Appelez la fonction de recherche binaire
En appelant la fonction de recherche binaire, nous pouvons obtenir l'index de la valeur cible dans le tableau. Par exemple, nous avons un tableau ordonné nums et nous souhaitons rechercher la valeur cible cible. La fonction de recherche binaire peut être appelée en utilisant le code suivant :
int nums[] = {1, 3, 5, 7, 9}; int n = sizeof(nums) / sizeof(nums[0]); int target = 5; int index = binarySearch(nums, 0, n - 1, target); if (index != -1) { cout << "目标值的索引为:" << index << endl; } else { cout << "目标值不存在!" << endl; }
Dans le code ci-dessus, nous définissons d'abord un tableau ordonné nums, puis calculons la longueur n du tableau. Ensuite, la valeur cible cible est définie et la fonction de recherche binaire binaireSearch est appelée pour rechercher l'index de la valeur cible. Enfin, la sortie est basée sur le résultat renvoyé par la fonction.
Grâce aux étapes ci-dessus, nous pouvons utiliser l'algorithme de recherche binaire en C++ pour effectuer des opérations de recherche efficaces. Dans les applications pratiques, la fonction de recherche binaire peut être appelée selon des scénarios et des exigences spécifiques, et un traitement ultérieur peut être effectué sur la base des résultats renvoyés.
Résumé
L'algorithme de recherche binaire est un algorithme de recherche efficace adapté aux collections de données ordonnées. En C++, nous pouvons effectuer une recherche en définissant une fonction de recherche binaire et en passant le tableau à rechercher, la position de départ, la position de fin et la valeur cible. En mettant continuellement à jour la plage de recherche, l'index de la valeur cible peut éventuellement être trouvé. Nous espérons que l'introduction et les exemples de code de cet article pourront aider les lecteurs à mieux comprendre et appliquer l'algorithme de recherche binaire.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

01Aperçu des perspectives Actuellement, il est difficile d'atteindre un équilibre approprié entre efficacité de détection et résultats de détection. Nous avons développé un algorithme YOLOv5 amélioré pour la détection de cibles dans des images de télédétection optique haute résolution, en utilisant des pyramides de caractéristiques multicouches, des stratégies de têtes de détection multiples et des modules d'attention hybrides pour améliorer l'effet du réseau de détection de cibles dans les images de télédétection optique. Selon l'ensemble de données SIMD, le mAP du nouvel algorithme est 2,2 % meilleur que YOLOv5 et 8,48 % meilleur que YOLOX, permettant ainsi d'obtenir un meilleur équilibre entre les résultats de détection et la vitesse. 02 Contexte et motivation Avec le développement rapide de la technologie de télédétection, les images de télédétection optique à haute résolution ont été utilisées pour décrire de nombreux objets à la surface de la Terre, notamment des avions, des voitures, des bâtiments, etc. Détection d'objets dans l'interprétation d'images de télédétection

Les étapes pour implémenter le modèle de stratégie en C++ sont les suivantes : définir l'interface de stratégie et déclarer les méthodes qui doivent être exécutées. Créez des classes de stratégie spécifiques, implémentez l'interface respectivement et fournissez différents algorithmes. Utilisez une classe de contexte pour contenir une référence à une classe de stratégie concrète et effectuer des opérations via celle-ci.

La gestion des exceptions imbriquées est implémentée en C++ via des blocs try-catch imbriqués, permettant de déclencher de nouvelles exceptions dans le gestionnaire d'exceptions. Les étapes try-catch imbriquées sont les suivantes : 1. Le bloc try-catch externe gère toutes les exceptions, y compris celles levées par le gestionnaire d'exceptions interne. 2. Le bloc try-catch interne gère des types spécifiques d'exceptions, et si une exception hors de portée se produit, le contrôle est confié au gestionnaire d'exceptions externe.

Compter semble simple, mais en pratique, c'est très difficile. Imaginez que vous êtes transporté dans une forêt tropicale vierge pour effectuer un recensement de la faune. Chaque fois que vous voyez un animal, prenez une photo. Les appareils photo numériques enregistrent uniquement le nombre total d'animaux suivis, mais vous êtes intéressé par le nombre d'animaux uniques, mais il n'y a pas de statistiques. Alors, quelle est la meilleure façon d’accéder à cette population animale unique ? À ce stade, vous devez dire : commencez à compter maintenant et comparez enfin chaque nouvelle espèce de la photo à la liste. Cependant, cette méthode de comptage courante n'est parfois pas adaptée aux informations pouvant atteindre des milliards d'entrées. Des informaticiens de l'Institut indien de statistique, UNL, et de l'Université nationale de Singapour ont proposé un nouvel algorithme : le CVM. Il peut approximer le calcul de différents éléments dans une longue liste.

L'héritage de modèle C++ permet aux classes dérivées d'un modèle de réutiliser le code et les fonctionnalités du modèle de classe de base, ce qui convient à la création de classes avec la même logique de base mais des comportements spécifiques différents. La syntaxe d'héritage du modèle est : templateclassDerived:publicBase{}. Exemple : templateclassBase{};templateclassDerived:publicBase{};. Cas pratique : création de la classe dérivée Derived, héritage de la fonction de comptage de la classe de base Base et ajout de la méthode printCount pour imprimer le décompte actuel.

En C, le type de char est utilisé dans les chaînes: 1. Stockez un seul caractère; 2. Utilisez un tableau pour représenter une chaîne et se terminer avec un terminateur nul; 3. Faire fonctionner via une fonction de fonctionnement de chaîne; 4. Lisez ou sortant une chaîne du clavier.

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

Le calcul de C35 est essentiellement des mathématiques combinatoires, représentant le nombre de combinaisons sélectionnées parmi 3 des 5 éléments. La formule de calcul est C53 = 5! / (3! * 2!), Qui peut être directement calculé par des boucles pour améliorer l'efficacité et éviter le débordement. De plus, la compréhension de la nature des combinaisons et la maîtrise des méthodes de calcul efficaces est cruciale pour résoudre de nombreux problèmes dans les domaines des statistiques de probabilité, de la cryptographie, de la conception d'algorithmes, etc.
