recherche
Maisondéveloppement back-endtutoriel phpRecherche de liste ordonnée PHP ---- Recherche binaire (la moitié)

Introduction :

Technologie de recherche binaire, également connue sous le nom de demi-recherche. Son principe est que les enregistrements du tableau linéaire doivent être classés dans l'ordre des clés (généralement du plus petit au plus grand) et que le tableau linéaire doit être stocké de manière séquentielle.

Idée de base :

Dans une liste ordonnée, prenez l'enregistrement du milieu comme objet de comparaison. Si la valeur donnée est égale à la clé de l'enregistrement du milieu, la recherche est réussie ; la valeur donnée est inférieure à l'enregistrement du milieu. Si la valeur donnée est supérieure au mot-clé de l'enregistrement du milieu, la recherche se poursuivra dans la moitié gauche de l'enregistrement du milieu. Si la valeur donnée est supérieure au mot-clé de l'enregistrement du milieu, le la recherche se poursuivra dans la moitié droite de l'enregistrement du milieu. Répétez le processus ci-dessus jusqu'à ce que la recherche réussisse ou qu'il n'y ait aucun enregistrement dans toutes les zones de recherche et que la recherche échoue.

Code :

<?php
//二分搜索(折半查找)算法(前提是数组必须是有序数组) 时间复杂度是 O(logn)
$i = 0;    //存储对比的次数
//@param 待查找数组
//@param 待搜索的数字
function binsearch($arr,$num){
    $count = count($arr);
    $lower = 0;
    $high = $count - 1;
    global $i;
    while($lower <= $high){
        $i ++; //计数器
        if($arr[$lower] == $num){
            return $lower;
        }
        if($arr[$high] == $num){
            return $high;
        }
        $middle = intval(($lower + $high) / 2);
        if($num < $arr[$middle]){
            $high = $middle - 1;
        }else if($num > $arr[$middle]){
            $lower = $middle + 1;
        }else{
            return $middle;
        }
    }
    //返回-1表示查找失败
    return -1;
}
$arr = array(0,1,16,24,35,47,59,62,73,88,99);
$pos = binsearch($arr,62);
print($pos);
echo "<br>";
echo $i;

Résumé :

La complexité temporelle de la recherche binaire est O(logn). Cependant, étant donné que la condition préalable à la recherche binaire est le stockage séquentiel d'une table ordonnée (tableau), si la table ordonnée nécessite des opérations d'insertion ou de suppression fréquentes, le maintien du tri ordonné entraînera une charge de travail considérable.

Ce qui précède est le contenu de la recherche de table ordonnée PHP - recherche binaire (réduit de moitié). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment pouvez-vous protéger contre les attaques de scripts croisés (XSS) liées aux séances?Comment pouvez-vous protéger contre les attaques de scripts croisés (XSS) liées aux séances?Apr 23, 2025 am 12:16 AM

Pour protéger l'application des attaques XSS liées à la session, les mesures suivantes sont nécessaires: 1. Définissez les drapeaux httponly et sécurisés pour protéger les cookies de session. 2. Codes d'exportation pour toutes les entrées utilisateur. 3. Implémentez la politique de sécurité du contenu (CSP) pour limiter les sources de script. Grâce à ces politiques, les attaques XSS liées à la session peuvent être protégées efficacement et les données utilisateur peuvent être assurées.

Comment pouvez-vous optimiser les performances de session PHP?Comment pouvez-vous optimiser les performances de session PHP?Apr 23, 2025 am 12:13 AM

Les méthodes pour optimiser les performances de la session PHP incluent: 1. Delay Session Start, 2. Utilisez la base de données pour stocker les sessions, 3. Compress Session Data, 4. Gérer le cycle de vie de la session et 5. Implémenter le partage de session. Ces stratégies peuvent améliorer considérablement l'efficacité des applications dans des environnements de concurrence élevés.

Quel est le paramètre de configuration session.gc_maxlifetime?Quel est le paramètre de configuration session.gc_maxlifetime?Apr 23, 2025 am 12:10 AM

Thesesse.gc_maxlifetimesettingInphpdeterminesthelifespanofessiondata, setInSeconds.1) it'sconfiguredInphp.Iniorviaini_set (). 2)

Comment configurez-vous le nom de session en PHP?Comment configurez-vous le nom de session en PHP?Apr 23, 2025 am 12:08 AM

Dans PHP, vous pouvez utiliser la fonction session_name () pour configurer le nom de session. Les étapes spécifiques sont les suivantes: 1. Utilisez la fonction session_name () pour définir le nom de session, tel que session_name ("my_session"). 2. Après la définition du nom de la session, appelez session_start () pour démarrer la session. La configuration des noms de session peut éviter les conflits de données de session entre plusieurs applications et améliorer la sécurité, mais faire attention à l'unicité, à la sécurité, à la longueur et à la définition du calendrier des noms de session.

À quelle fréquence devriez-vous régénérer les identifiants de session?À quelle fréquence devriez-vous régénérer les identifiants de session?Apr 23, 2025 am 12:03 AM

L'ID de session doit être régénéré régulièrement lors de la connexion, avant les opérations sensibles et toutes les 30 minutes. 1. Régénérez l'ID de session lors de la connexion pour empêcher les attaques fixes de session. 2. Régénérer avant les opérations sensibles pour améliorer la sécurité. 3. La régénération régulière réduit les risques d'utilisation à long terme, mais l'expérience utilisateur doit être pesée.

Comment définissez-vous les paramètres de cookie de session dans PHP?Comment définissez-vous les paramètres de cookie de session dans PHP?Apr 22, 2025 pm 05:33 PM

La définition des paramètres de cookie de session dans PHP peut être réalisée via la fonction Session_Set_COOKIE_PARAMS (). 1) Utilisez cette fonction pour définir des paramètres, tels que le temps d'expiration, le chemin, le nom de domaine, le drapeau de sécurité, etc.; 2) Appelez session_start () pour que les paramètres prennent effet; 3) Ajuster dynamiquement les paramètres en fonction des besoins, tels que l'état de connexion de l'utilisateur; 4) Faites attention à la définition de drapeaux sécurisés et httponly pour améliorer la sécurité.

Quel est le but principal de l'utilisation de sessions en PHP?Quel est le but principal de l'utilisation de sessions en PHP?Apr 22, 2025 pm 05:25 PM

L'objectif principal de l'utilisation de sessions en PHP est de maintenir l'état de l'utilisateur entre différentes pages. 1) La session est lancée via la fonction session_start (), créant un ID de session unique et le stockant dans le cookie utilisateur. 2) Les données de session sont enregistrées sur le serveur, permettant de passer les données entre différentes demandes, telles que l'état de connexion et le contenu du panier.

Comment pouvez-vous partager des sessions entre les sous-domaines?Comment pouvez-vous partager des sessions entre les sous-domaines?Apr 22, 2025 pm 05:21 PM

Comment partager une session entre les sous-domaines? Implémenté en définissant des cookies de session pour les noms de domaine communs. 1. Définissez le domaine du cookie de session sur .example.com côté serveur. 2. Choisissez la méthode de stockage de session appropriée, telle que la mémoire, la base de données ou le cache distribué. 3. Passez l'ID de session via des cookies, et le serveur récupère et met à jour les données de session en fonction de l'ID.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux