Implémentation PHP d'un exemple de code de recherche binaire

怪我咯
Libérer: 2023-03-13 22:50:01
original
2084 Les gens l'ont consulté

La

Recherche binaire, également connue sous le nom de demi-recherche, présente l'avantage de moins de comparaisons, une vitesse de recherche rapide et de bonnes performances moyennes. Son inconvénient est que la table à rechercher doit être ordonnée ; table, et insertionsupprimerDifficile. Par conséquent, la méthode de recherche binaire convient aux listes ordonnées qui ne changent pas fréquemment mais sont fréquemment recherchées. Tout d'abord, en supposant que les éléments du tableau sont classés par ordre croissant, comparez le mot-clé enregistré en position médiane du tableau avec le mot-clé de recherche. Si les deux sont égaux, la recherche réussit, sinon utilisez l'enregistrement en position médiane pour. divisez le tableau en deux sous-tableaux, le premier et le dernier. Si Si le mot-clé enregistré en position médiane est supérieur au mot-clé de recherche, alors le sous-tableau précédent sera recherché plus loin, sinon le sous-tableau suivant sera recherché plus loin. Répétez le processus ci-dessus jusqu'à ce qu'un enregistrement répondant aux conditions soit trouvé, ce qui rend la recherche réussie, ou jusqu'à ce que la sous-table n'existe plus, auquel cas la recherche échoue.

Boucle

function binary(&$arr,$low,$top,$target){
    while($low <= $top){        $mid = floor(($low+$top)/2);        echo $mid."<br>";        if($arr[$mid]==$target){            return $arr[$mid];
        }elseif($arr[$mid]<$target){            $low = $mid+1;                
        }else{            $top = $mid-1;
        }
    }    return -1;
}
Copier après la connexion

Récursion

function binaryRecursive(&$arr,$low,$top,$target){
    if($low<=$top){        $mid = floor(($low+$top)/2);        if($mid==$target){            return $arr[$mid];
        }elseif($arr[$mid]<$target){            return binaryRecursive($arr,$mid+1,$top,$target);
        }else{            return binaryRecursive($arr,$low,$top-1,$target);
        }
    }else{        return -1;
    }
}
Copier après la connexion

Remarque : le principe de la recherche binaire est tableau Organiser dans l'ordre

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal