Maison >développement back-end >tutoriel php >Comment implémenter la recherche binaire en PHP ? (exemple de code)
La recherche binaire (ou recherche binaire) est une technique de recherche utilisée pour rechercher des éléments dans un tableau trié. Alors comment implémenter la recherche binaire en PHP ? L'article suivant vous présentera comment utiliser l'itération et la récursivité pour implémenter la recherche binaire en PHP. J'espère qu'il vous sera utile. [Recommandation du didacticiel vidéo : Tutoriel PHP]
Méthode 1 : Utiliser l'itération
Étapes :
1. Triez le tableau car la recherche binaire ne fonctionne que sur les plages triées
2 Si l'élément que nous voulons rechercher est plus grand que le bon If. l'élément du milieu est recherché, l'élément du milieu est calculé, sinon la recherche sur le côté gauche est calculée.
3. Si l'élément est trouvé, True est renvoyé.
Code d'implémentation :
<?php header("content-type:text/html;charset=utf-8"); function binarySearch(Array $arr, $x) { // check for empty array if (count($arr) === 0) return false; $low = 0; $high = count($arr) - 1; while ($low <= $high) { // 计算中间索引 $mid = floor(($low + $high) / 2); // 在中间找到元素 if($arr[$mid] == $x) { return true; } if ($x < $arr[$mid]) { // 搜索数组的左侧 $high = $mid -1; } else { // 搜索数组的右侧 $low = $mid + 1; } } // 元素x不存在,返回false return false; } $arr = array(1, 2, 3, 4, 5); $value = 5; if(binarySearch($arr, $value) == true) { echo "元素".$value.": 存在"; } else { echo "元素".$value.": 不存在"; } ?>
Sortie :
元素5: 存在
Méthode 2 : Utiliser la récursivité
La récursion est la façon dont nous appelons la même fonction à plusieurs reprises jusqu'à ce qu'une condition de base soit remplie pour mettre fin à la récursion. Le principe est le même que la première méthode, il suffit de modifier les paramètres de la fonction de manière récursive et de décomposer le problème.
Code d'implémentation :
<?php header("content-type:text/html;charset=utf-8"); function binarySearch(Array $arr, $start, $end, $x){ if ($end < $start) return false; $mid = floor(($end + $start)/2); if ($arr[$mid] == $x) return true; elseif ($arr[$mid] > $x) { // 调用binarySearch()函数本身, 改变其中参数:$start, $mid-1 return binarySearch($arr, $start, $mid - 1, $x); } else { // 调用binarySearch()函数本身, 改变其中参数:mid + 1, end return binarySearch($arr, $mid + 1, $end, $x); } } $arr = array(1, 2, 3, 4, 5); $value = 6; if(binarySearch($arr, 0, count($arr) - 1, $value) == true) { echo "元素".$value.": 存在"; } else { echo "元素".$value.": 不存在"; } ?>
Sortie :
元素6: 不存在
Ce qui précède est l'intégralité du contenu de cet article, j'espère que cela pourra vous aider tout le monde apprend Aide. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !
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!