Analyse et explication de l'algorithme de recherche binaire implémenté en PHP

jacklove
Libérer: 2023-04-02 15:48:01
original
1630 Les gens l'ont consulté

Cet article présente principalement l'algorithme de recherche binaire implémenté en PHP, et analyse les principes de l'algorithme de recherche binaire et les techniques d'implémentation telles que les boucles et les récursions sous forme d'exemples. Les amis dans le besoin peuvent se référer à ce qui suit

<.>Les exemples de cet article décrivent l'algorithme de recherche binaire implémenté en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

La méthode de recherche binaire nécessite que le tableau soit un tableau ordonné

En supposant que notre tableau est un tableau croissant, nous avons d'abord besoin pour trouver le milieu du tableau Emplacement.

Un. Pour connaître la position médiane, vous devez connaître la position de départ et la position finale, puis prendre la valeur de la position médiane pour la comparer avec notre valeur.

Deux. Si la valeur médiane est supérieure à notre valeur donnée, cela signifie que notre valeur est avant la position médiane, elle doit à nouveau être divisée en deux. Parce qu'elle est avant le milieu, la valeur que nous devons modifier est la. valeur de la position finale À ce stade, la valeur de la position finale devrait être Nous sommes au milieu à ce stade.
Trois. D'un autre côté, si la valeur médiane est inférieure à la valeur que nous donnons, cela signifie que la valeur donnée est après la position médiane. À ce stade, la valeur de cette dernière partie doit être à nouveau divisée en deux, car elle l'est. après la valeur médiane, donc la valeur que nous devons modifier est la valeur de la position de départ, la valeur de la position de départ à ce moment devrait être notre position médiane à ce moment jusqu'à ce que nous trouvions la valeur spécifiée.
Quatre. Ou la valeur intermédiaire est égale à la position de départ initiale, ou à la position finale (dans ce cas, la valeur donnée n'est pas trouvée), utilisons du code pour l'implémenter~

//循环实现
function getValue($num,$arr)
{
//查找数组的中间位置
$length=count($arr);
$start=0;
$end=$length;
$middle=floor(($start+$end)/2);
//循环判断
while($start>$end-1)
{
if($arr[middle]==$num)
{
return middle+1;
}elseif($arr[middle]<$num)
{
//如果当前要查找的值比当前数组的中间值还要打,那么意味着该值在数组的后半段
//所以起始位置变成当前的middle的值,end位置不变。
$start=$middle;
$middle=floor(($start+$end)/2);
}else{
//反之
$end=$middle;
$middle=floor(($start+$end)/2);
}}
return false;
}
Copier après la connexion
Copier après la connexion


//循环实现
function getValue($num,$arr)
{
//查找数组的中间位置
$length=count($arr);
$start=0;
$end=$length;
$middle=floor(($start+$end)/2);
//循环判断
while($start>$end-1)
{
if($arr[middle]==$num)
{
return middle+1;
}elseif($arr[middle]<$num)
{
//如果当前要查找的值比当前数组的中间值还要打,那么意味着该值在数组的后半段
//所以起始位置变成当前的middle的值,end位置不变。
$start=$middle;
$middle=floor(($start+$end)/2);
}else{
//反之
$end=$middle;
$middle=floor(($start+$end)/2);
}}
return false;
}
Copier après la connexion
Copier après la connexion

Articles qui pourraient vous intéresser :

Implémentation PHP Un exemple de l'algorithme de demi-recherche

Un exemple d'algorithme de correspondance de chaînes implémenté en PHP

La direction avant maximale implémentée dans l'exemple d'explication de l'algorithme PHP Matching

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