91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中如何實現一個二分查找算法

發布時間:2021-07-22 16:35:13 來源:億速云 閱讀:147 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關PHP中如何實現一個二分查找算法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

binarySearch

二分查找采用的方法比較容易理解,以數組為例:

① 先取數組中間的值floor((low+top)/2),

② 然后通過與所需查找的數字進行比較,若比中間值大,則將首值替換為中間位置下一個位置,繼續第一步的操作;若比中間值小,則將尾值替換為中間位置上一個位置,繼續第一步操作

③ 重復第二步操作直至找出目標數字

比如從1,3,9,23,54 中查找數字23,

首位置為0, 尾位置為4,中間位置就為2 值為9,比23小,則首位置更新為2+1即3;那么接下來中間位置就為(3+4)/2=3,值為23,比較相等即找到

//  非遞歸算法:
//  $target是要查找的目標 $arr是已經排序好的數組
function binary(&$arr,$low,$top,$target){
    while($low <= $top){
//由于php取商是有小數的,所以向下取整,不過也可不加,數組也會取整
      $mid = floor(($low+$top)/2);
      echo $mid."<br>";
      if($arr[$mid]==$target){
        return $arr[$mid];
      }elseif($arr[$mid]<$target){
        $low = $mid+1;
      }else{
        $top = $mid-1;
      }
    }
    return -1;
}
//  遞歸算法:
function binaryRecursive(&$arr,$low,$top,$target){
    if($low<=$top){
      $mid = floor(($low+$top)/2);
      if($mid==$target){
        return $arr[$mid];
      }elseif($arr[$mid]<$target){
        return binaryRecursive($arr,$mid+1,$top,$target);
      }else{
        return binaryRecursive($arr,$low,$top-1,$target);
      }
    }else{
      return -1;
    }
}

以上就是PHP中如何實現一個二分查找算法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

临泉县| 辽阳市| 瑞安市| 准格尔旗| 宁德市| 巴彦淖尔市| 普定县| 临澧县| 常熟市| 荣昌县| 乾安县| 张家界市| 苗栗市| 高密市| 仙居县| 浠水县| 日土县| 车险| 扎赉特旗| 枣庄市| 湄潭县| 丰台区| 双鸭山市| 黎川县| 黄平县| 邢台市| 呼伦贝尔市| 婺源县| 平远县| 德格县| 江安县| 农安县| 东乡| 略阳县| 诸城市| 长岛县| 日土县| 永定县| 密云县| 普宁市| 海晏县|