中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

长寿区| 天台县| 嵊泗县| 普兰县| 阳春市| 高邮市| 亚东县| 光泽县| 柳江县| 三江| 松原市| 六盘水市| 铁力市| 新余市| 双桥区| 英超| 大同市| 永定县| 固始县| 公安县| 武山县| 景谷| 焉耆| 尚志市| 合肥市| 邓州市| 涡阳县| 延吉市| 鸡东县| 阿合奇县| 凭祥市| 沂水县| 海城市| 拉萨市| 信丰县| 灵丘县| 韩城市| 将乐县| 克拉玛依市| 武义县| 安龙县|