Algorithmes : recherche linéaire et recherche binaire
Certains algorithmes simples introduisent des concepts de base de logique et de structure de données, tandis que d'autres visent une plus grande complexité.
Les algorithmes de recherche sont utiles pour localiser des informations dans des volumes de données, comme trouver un contact dans un annuaire téléphonique ou un fichier sur un ordinateur.
En ce sens, cet article vise à présenter une introduction aux concepts impliquant les algorithmes de recherche linéaire et de recherche binaire.
1. Recherche linéaire
- Parcourez une liste séquentiellement pour trouver un élément
- Un exemple serait de rechercher un numéro spécifique dans un tableau
L'Algorithme de recherche linéaire, dans un énoncé narratif, signifie avoir un tableau d'entiers et une valeur qui sera la référence pour la recherche, appelée cible, qui seront les paramètres d'entrée. En ce sens, il existe une fonction qui reçoit ces valeurs, et avec cela, elle parcourt d'abord chaque position de ce tableau jusqu'à la taille maximale des positions existantes, en utilisant principalement un for pour cela, et ensuite, avec un if, elle est conditionné le contrôle de : si chaque position a une valeur égale à la cible. Si la valeur est trouvée, la fonction renvoie l'index de cette position, ou renvoie -1, représentant les cas non trouvés.
Un exemple utilisant JavaScript serait :
function linearSearch(array, target) { for (let i = 0; i < array.length; i++) { if (array[i] === target) { return i; } } return -1; }
Par conséquent, cet algorithme vise à renvoyer la position, ou index, où se trouve l'élément, ou même, il localise simplement le premier élément correspondant, sans avoir besoin de continuer après l'avoir trouvé. Ce comportement se produit en raison des instructions de l'algorithme qui, lorsque sa condition est satisfaite, exécute le retour avec l'index de l'élément, puis quitte la boucle, mettant fin à la fonction.
Cet algorithme peut être utile dans les scénarios où il existe des listes petites ou non ordonnées. Chaque élément peut devoir être parcouru et il n'y a pas d'utilisation de mémoire supplémentaire.
2. Recherche binaire
- Faites défiler une liste ordonnée pour trouver un élément
- Un exemple serait de rechercher un numéro spécifique dans un tableau
L'Algorithme de recherche binaire est une forme d'algorithme plus efficace pour trouver une valeur donnée dans un tableau trié. Cela fonctionne en divisant à plusieurs reprises la plage de recherche en deux, ce qui la rend nettement plus rapide que la recherche linéaire pour de grands ensembles de données. La recherche binaire a une complexité O(log n), tandis que la recherche linéaire est O(n).
A titre d'exemple en JavaScript, nous avons :
function linearSearch(array, target) { for (let i = 0; i < array.length; i++) { if (array[i] === target) { return i; } } return -1; }
La logique consiste à commencer avec deux pointeurs, un au début (bas) et l'autre à la fin (haut) du tableau. Ainsi, l'indice du milieu est calculé const middle = Math.floor((low high) / 2). Avec cela, l'élément du milieu est comparé à la cible à chaque étape : si l'élément du milieu est égal à la cible, l'index est renvoyé. Cependant, si l'élément du milieu est plus petit que la cible, ou si l'élément du milieu < cible, implique de rejeter les plus petits nombres, en plaçant le début comme bas = milieu 1. Si l'élément du milieu, à son tour, est supérieur au milieu cible > cible, les nombres supérieurs à la cible sont ignorés, ajustant l'index final à haut = milieu - 1. Ce processus est répété jusqu'à ce que la cible soit trouvée ou lorsque la plage devient invalide, dans le cas bas > élevé.
La recherche binaire peut être efficace pour rechercher des données ordonnées, comme dans un dictionnaire alphabétique ou un ensemble de dates ordonnées. Ils ont tendance à être plus rapides et plus efficaces, car le problème peut être divisé en sous-problèmes plus petits à chaque itération.
Par conséquent, il est entendu que la recherche linéaire est simple et fonctionne sur de petites listes. La recherche binaire est beaucoup plus efficace, mais nécessite des données ordonnées.
Comprendre le fonctionnement des différents algorithmes et leurs contextes d'utilisation est une étape importante vers la construction de solutions informatiques efficaces. Essayez de mettre en œuvre et d'analyser ces méthodes, et découvrez comment ces stratégies peuvent être adaptées pour résoudre les défis du monde réel. =)
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds











JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant
