pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

PHP有序表查找之二分查找(折半查找)算法示例

這篇文章主要介紹了PHP有序表查找之二分查找(折半查找)算法,簡單介紹了二分查找法的概念、原理并結合實例形式分析了php基于二分查找算法進行有序線性表查找的相關操作技巧,需要

本文實例講述了PHP有序表查找之二分查找(折半查找)算法。分享給大家供大家參考,具體如下:

簡介:

二分查找技術,又稱為折半查找。它的前提是線性表中的記錄必須是關鍵碼有序(通常從小到達有序),線性表必須采用順序存儲。

基本思想:

在有序表中,取中間記錄作為比較對象,若給定值與中間記錄的關鍵字相等,則查找成功;若給定值小于中間記錄的關鍵字,則在中間記錄的左半區繼續查找;若給定值大于中間記錄的關鍵字,則在中間記錄的右半區繼續查找。不斷重復上述過程,直到查找成功,或所有查找區域無記錄,查找失敗為止。

代碼:

<?php
//二分搜索(折半查找)算法(前提是數組必須是有序數組) 時間復雜度是 O(logn)
$i = 0; //存儲對比的次數
//@param 待查找數組
//@param 待搜索的數字
function binsearch($arr,$num){
 $count = count($arr);
 $lower = 0;
 $high = $count - 1;
 global $i;
 while($lower <= $high){
  $i ++; //計數器
  if($arr[$lower] == $num){
   return $lower;
  }
  if($arr[$high] == $num){
   return $high;
  }
  $middle = intval(($lower + $high) / 2);
  if($num < $arr[$middle]){
   $high = $middle - 1;
  }else if($num > $arr[$middle]){
   $lower = $middle + 1;
  }else{
   return $middle;
  }
 }
 //返回-1表示查找失敗
 return -1;
}
$arr = array(0,1,16,24,35,47,59,62,73,88,99);
$pos = binsearch($arr,62);
print($pos);
echo "<br>";
echo $i;

運行結果:

7
3

總結:

二叉查找的時間復雜度是 O(logn)。不過由于二叉查找的前提條件是需要有序表順序存儲(數組),如果該有序表需要頻繁的執行插入或刪除操作,維護有序的排序會帶來不小的工作量。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》及《PHP數學運算技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:

  • 使用PHP實現二分查找算法代碼分享
  • PHP 冒泡排序 二分查找 順序查找 二維數組排序算法函數的詳解
  • php二分查找二種實現示例
  • PHP二分查找算法示例【遞歸與非遞歸方法】
  • PHP二分查找算法的實現方法示例
  • PHP實現的折半查找算法示例
  • PHP常用的排序和查找算法
  • php數據結構與算法(PHP描述) 查找與二分法查找
  • php數據結構之順序鏈表與鏈式線性表示例
  • php線性表的入棧與出棧實例分析
  • php線性表順序存儲實現代碼(增刪查改)
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應用程序,并傳遞相關參數方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實現依賴注入過程以及相關知識點分享,對此有興趣的朋友跟著小編學習下吧。
php遍歷一個文件夾內的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現達到清空一個目錄的效果。本文給大家分享實例代碼,需要的朋友參考
主站蜘蛛池模板: 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 振动筛-交叉筛-螺旋筛-滚轴筛-正弦筛-方形摇摆筛「新乡振动筛厂家」 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网| 电镀电源整流器_高频电解电源_单脉双脉冲电源 - 东阳市旭东电子科技 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 江苏皓越真空设备有限公司 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 电动葫芦-河北悍象起重机械有限公司 | 万家财经_财经新闻_在线财经资讯网| 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 执业药师报名条件,考试时间,考试真题,报名入口—首页 | 今日扫码_溯源二维码_产品防伪一物一码_红包墙营销方案 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 成都茶楼装修公司 - 会所设计/KTV装修 - 成都朗煜装饰公司 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 |