Heim >Backend-Entwicklung >PHP-Tutorial >Detaillierte Erläuterung der Beispiele für binäre Suchalgorithmen in PHP

Detaillierte Erläuterung der Beispiele für binäre Suchalgorithmen in PHP

墨辰丷
墨辰丷Original
2018-06-01 11:00:551748Durchsuche

Dieser Artikel stellt hauptsächlich den binären Suchalgorithmus in PHP vor. Er fasst die Prinzipien und spezifischen Implementierungstechniken des binären Suchalgorithmus in Form von Beispielen zusammen.

Binär Suche in erweiterten Punkten Es kann natürlich in der Entwicklung verwendet werden, wenn Sie nach einem Job in einem großen Unternehmen suchen. Schauen wir uns einen Artikel über die Implementierung der binären Suche in PHP an Einzelheiten sind wie folgt.

Dichotomie (Dichotomie) ist die Methode der Zweiteilung. Sei [a, b] das geschlossene Intervall von R. Die sukzessive Dichotomiemethode besteht darin, die folgende Intervallsequenz zu erstellen ([an, bn]): a0= a, b0=b, und für jede natürliche Zahl n ist [an+1, bn+1] entweder gleich [an, cn] oder gleich [cn, bn] , wobei cn den Mittelpunkt von [an, bn] darstellt.

Beispiel 1:

header('Content-Type: text/html; charset=utf-8;');
$arr = array(2,33,22,1,323,321,28,36,90,123);
sort($arr);
//二分法查找
echo $index = binarySearch($arr,321);
function binarySearch($arr,$key){
 $len = count($arr);
 $mid = -1;
 $start = 0;
 $end  = $len-1;
 while($start<=$end){
 $mid = (int)(($start+$end)/2);
 echo $mid."\n";
 if($arr[$mid] == $key){
  return $mid;
 }else if($arr[$mid] < $key){
  $start = $mid+1;
 }else if($arr[$mid] > $key){
  $end = $mid-1;
 }
 }
}

Beispiel 2:

<?php
//search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值
function search($array, $k, $low=0, $high=0)
{
  if(count($array)!=0 and $high == 0) //判断是否为第一次调用
  {
    $high = count($array);
  }
  if($low <= $high) //如果还存在剩余的数组元素
  {
    $mid = intval(($low+$high)/2); //取$low和$high的中间值
    if ($array[$mid] == $k) //如果找到则返回
    {
      return $mid;
    }
    elseif ($k < $array[$mid]) //如果没有找到,则继续查找
    {
      return search($array, $k, $low, $mid-1);
    }
    else
    {
      return search($array, $k, $mid+1, $high);
    }
  }
  return -1;
}
$array = array(4,5,7,8,9,10); //测试search函数
echo search($array, 8); //调用search函数并输出查找结果
?>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

phpDatenbankoperation implementieren Modellklasse

phpURL-Verschlüsselung und -Entschlüsselung implementieren

PHP foreach implementiert die Durchquerung mehrdimensionaler Arrays

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Beispiele für binäre Suchalgorithmen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn