L'algorithme de recherche à moitié d'abondance dans PHP, également connu sous le nom de recherche binaire, est un algorithme classique utilisé pour localiser efficacement les positions des éléments dans les tableaux ordonnés. Il rétrécit rapidement la plage de recherche en divisant constamment la plage de recherche de moitié et en jugeant la relation de taille entre l'élément cible et l'élément intermédiaire jusqu'à ce que la cible soit trouvée ou déterminée à ne pas exister.
Les étapes de base de la recherche de moitié pliante comprennent:
Définissez l'indice de démarrage du tableau à gauche et l'indice final à droite .
Calculez l'index intermédiaire au milieu , c'est-à-dire (gauche + à droite) / 2 .
Comparez la valeur cible avec l'élément intermédiaire: s'il est égal, renvoyez l'index MID et la recherche est réussie.
Si la valeur cible est inférieure à l'élément central, réglez à droite au milieu - 1 et continuez à rechercher dans la moitié gauche.
Si la valeur cible est supérieure à l'élément central, réglez à gauche sur le + 1 et continuez à rechercher dans la moitié droite.
Répétez les étapes ci-dessus jusqu'à ce que la valeur cible ou la gauche> droite soit trouvée, indiquant que la recherche a échoué.
Ce qui suit est un exemple de code PHP pour démontrer l'implémentation de l'algorithme de recherche à moitié d'abondance:
function binarySearch($arr, $target) {
$left = 0;
$right = count($arr) - 1;
while ($left <= $right) {
$mid = intval(($left + $right) / 2);
if ($arr[$mid] == $target) {
return $mid; // L'emplacement de la valeur cible
}
if ($arr[$mid] < $target) {
$left = $mid + 1; // Continuez à rechercher sur la moitié droite
} else {
$right = $mid - 1; // Continuez à rechercher sur la moitié gauche
}
}
return -1; // La valeur cible n'a pas été trouvée
}
<p>$arr = [1, 3, 5, 7, 9, 11, 15];<br>
$target = 7;<br>
$index = binarySearch($arr, $target);<br>
if ($index != -1) {<br>
echo "Valeur cible $target La position dans le tableau est $index";<br>
} else {<br>
echo "Valeur cible $target N'existe pas dans le tableau";<br>
}<br>
Le code ci-dessus définit une fonction BinarySearch qui accepte les tableaux ordonnés et les valeurs cibles en tant que paramètres, renvoie la position d'index de la valeur cible dans le tableau et renvoie -1 s'il n'existe pas.
La complexité temporelle de l'algorithme de recherche à moitié d'abondance est O (log n) , où n est la longueur du tableau. Chaque recherche réduit de moitié la plage, ce qui est beaucoup plus efficace que la recherche linéaire.
Par conséquent, la recherche binaire est très adaptée aux éléments de positionnement rapides dans de gros tableaux ordonnés.
La recherche binaire peut réduire considérablement la plage de recherche, réduire le nombre de comparaisons et atteindre un positionnement rapide, en particulier adapté aux scénarios avec de grands volumes de données.
Dans les applications avec des opérations de recherche fréquentes, l'utilisation de la recherche binaire peut réduire considérablement les frais généraux de temps, améliorer l'efficacité de l'exécution globale et éviter une traversée inutile.
Cet article explique systématiquement les principes et la mise en œuvre de l'algorithme PHP à mi-fin (recherche binaire) et montre l'utilisation spécifique à travers des exemples de code. Cet algorithme a les caractéristiques d'une faible complexité de temps et d'une grande efficacité, et convient à la recherche efficace des tableaux ordonnés. La maîtrise de cet algorithme aidera à améliorer la capacité des développeurs à gérer la recherche de problèmes et les performances du programme.