Maison >développement back-end >Problème PHP >Quel est l'algorithme de recherche dans le tableau PHP ? Comment le trouver ?
Il existe de nombreux algorithmes de recherche en PHP. Lesquels connaissez-vous ? Comment comprenez-vous la signification des algorithmes de recherche ? Cet article vous amènera à explorer quelques mystères sur les algorithmes. Discutons de ce qu'est un algorithme de recherche dans un tableau ? Comment le trouver ?
Recommandations associées : Qu'est-ce que le modèle de façade en PHP ? Quels sont ses atouts ? Quels sont les scénarios applicables ?
Algorithme de recherche :
Algorithme de recherche signifiant :
La recherche consiste à trouver un élément d'information spécifique dans une grande quantité d'informations. applications informatiques, la recherche est une opération de base couramment utilisée.
L'algorithme de recherche fait référence à la structure de code correspondant au processus de recherche. Il s’agit de localiser rapidement les éléments souhaités dans des tableaux moyens et grands. .
Algorithme de recherche séquentielle :
La recherche séquentielle est également appelée recherche de recherche. Elle commence à la fin du tableau linéaire de la structure de données, analyse séquentiellement et analyse les nœuds. en séquence. Le mot-clé est comparé à la valeur donnée k. S'ils sont égaux, la recherche est réussie ; si le nœud avec le mot-clé égal à k n'est pas trouvé à la fin du parcours, la recherche échoue.
Prenons le code comme exemple :
<?php //查找算法 //顺序查找 $arr = array(1,3,6,8,23,68,100); //顺序查找:从数组第一个元素开始,挨个匹配 function check_order($arr , $num){ //全部匹配 for($i = 0,$len = count($arr);$i <$len;$i++){ //判断 if($arr[$i] == $num){ return $i; } } return false ; } var_dump(check_order($arr,5));
Algorithme de recherche binaire
La recherche binaire nécessite un tableau linéaire Les nœuds sont classés par ordre croissant ou décroissant selon la valeur du mot-clé. La valeur initiale k est utilisée pour comparer avec le mot-clé du nœud intermédiaire. Le nœud intermédiaire divise le tableau linéaire en deux sous-tableaux. la recherche est réussie ; s'ils ne sont pas égaux, alors en fonction du résultat de la comparaison entre k et la clé du nœud intermédiaire, détermine quelle sous-table rechercher ensuite, et ainsi de suite de manière récursive jusqu'à ce que la recherche soit trouvée ou que la recherche se termine et qu'elle soit trouvée. constaté qu'il n'y a pas de tel nœud dans la table.
Idée d'un demi-algorithme :
1. Calculer la longueur du tableau ;
2. Déterminez les positions du pointeur sur les côtés gauche et droit ;
3. Trouvez la position médiane ; +
4.
5. Redéfinissez ensuite les limites en fonction de la taille.
<?php //查找算法 //顺序查找 $arr = array(1,3,6,8,23,68,100); //顺序查找:从数组第一个元素开始,挨个匹配 function check_order($arr , $num){ //全部匹配 for($i = 0,$len = count($arr);$i <$len;$i++){ //判断 if($arr[$i] == $num){ return $i; } } return false ; } //var_dump(check_order($arr,5)); //二分查找算法 //1、 得到数组边界 $right = count($arr); $left= 0; $res = 3; //2、循环匹配, while($left <=$right){ //3、得到中间位置 $middle = floor(($right + $left) / 2); //4、匹配数据. if($arr[$middle] == $res){ echo $middle; break; } //5、没有找到 if($arr[$middle] < $res){ //值在右边 $left = $middle + 1; }else{ //值在左边 $right = $middle - 1;
Apprentissage recommandé : "Tutoriel vidéo PHP"
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!