国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP二分查找算法示例【遞歸與非遞歸方法】

2024-05-04 23:50:16
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 北票市| 双牌县| 贡山| 灵台县| 柞水县| 建平县| 娄底市| 衡山县| 吴堡县| 贵南县| 大方县| 石泉县| 资源县| 凤台县| 昭苏县| 青川县| 鹤峰县| 晋州市| 洞口县| 乐业县| 呼伦贝尔市| 正宁县| 东平县| 木里| 古交市| 景德镇市| 靖西县| 长泰县| 大悟县| 黎川县| 芜湖市| 晋江市| 垣曲县| 万山特区| 马鞍山市| 湟中县| 讷河市| 南昌县| 通州区| 金坛市| 平乡县|