Maison >développement back-end >Problème PHP >Quel est l'algorithme de recherche dans le tableau PHP ? Comment le trouver ?

Quel est l'algorithme de recherche dans le tableau PHP ? Comment le trouver ?

慕斯
慕斯original
2021-06-23 18:02:371662parcourir

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));

Quel est lalgorithme de recherche dans le tableau PHP ? Comment le trouver ?

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;

Quel est lalgorithme de recherche dans le tableau PHP ? Comment le trouver ?

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!

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