Beispielerklärung der PHP-Implementierung der Array-Suchfunktion basierend auf der Binärmethode

jacklove
Freigeben: 2023-04-02 18:36:01
Original
1449 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich PHP zur Implementierung der Array-Suchfunktion basierend auf der Binärmethode vorgestellt. Er analysiert die zugehörigen Implementierungstechniken der While-Schleife und des rekursiven Aufrufalgorithmus zur Implementierung der Binärsuchfunktion in Form von Beispielen dazu

Das Beispiel in diesem Artikel beschreibt, wie PHP die Array-Suchfunktion basierend auf der Binärmethode implementiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Dichotomie. Verwenden Sie die While-Schleifenmethode bzw. die rekursive Aufrufmethode.

<?php
// 二分法的使用数组必须是有序的,或升序,或降序
$arr = array(
  1, 3, 5, 7, 9, 13
);
// 递归调用(相比较好理解
function bsearch_r($v, $arr, $low, $high){
  if ($low > $high) {// 先判断结束条件
    return -1;
  }
  $i = intval(($high + $low)/2);
  if ($arr[$i] > $v){
    return bsearch_r($v, $arr, $low, $i-1);// 递归
  } else if ($arr[$i] < $v){
    return bsearch_r($v, $arr, $i+1, $high);
  } else {
    return $i;
  }
}
echo bsearch_r(1, $arr, 0, count($arr)-1);// 0
echo &#39;<hr/>&#39;;
echo bsearch_r(14, $arr, 0, count($arr)-1);// -1
echo &#39;<hr/>&#39;;
// while循环
function bsearch($v, $arr){
  $low = 0;
  $high = count($arr)-1;// 使用下标,注意减去1
  // 注意凡是使用到while的时候,一定要防备无限循环的时候,注意终止循环的判断。
  while($low <= $high){// 比如$low<=$high,这个等于号必须有。
    $i = intval(($high + $low)/2);
    if ($arr[$i] > $v){
      $high = $i-1;
    } else if ($arr[$i] < $v){
      $low = $i+1;
    } else {
      return $i;
    }
  }
  return -1;// 找不到的时候返回-1
}
echo bsearch(13, $arr);// 5
echo &#39;<hr/>&#39;;
echo bsearch(14, $arr);// -1
Nach dem Login kopieren

Laufergebnisse:

Artikel, die Sie interessieren könnten:

Detaillierte Erklärung von Klassen und Objekten in PHP

Erklärung von PHP-Beispielen zum Hochladen einzelner Dateien und mehrerer Dateien

Prinzipielle Analyse der PHP-Multiplayer-Modulentwicklung

Das obige ist der detaillierte Inhalt vonBeispielerklärung der PHP-Implementierung der Array-Suchfunktion basierend auf der Binärmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage