博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【天天数据结构和算法】PHP实现二分查找的两种方法
阅读量:5847 次
发布时间:2019-06-18

本文共 683 字,大约阅读时间需要 2 分钟。

巩固一下大学时期学习的二分查找法,用PHP实现:

1.递归方法实现:

/** * @Description:二分查找法 * @User:jysdhr * @param $target 查找目标 * @param $arr 待查找数组 * @param $l 数组起始索引 * @param $r 数组结束索引 * @return int target所在位置 -1则不存在 */function BinarySearch($target,$arr,$l,$r){    if ($l>$r){        return -1;    }    $mid = $l+($r-$l)/2;    if ($target == $arr[$mid])        return $mid;    if ($target<$arr[$mid])        return BinarySearch($target,$arr,$l,$mid-1);    else        return BinarySearch($target,$arr,$mid+1,$r);}$arr = [1,3,5,6,7,8,10];var_dump(BinarySearch(9,$arr,0,6)) ;

2.循环方法实现:

 

总结:因为PHP有自动类型转换,而不用考虑整形溢出的这种异常.哈哈,不得不说,php处理二分查找确实很简单.也很好理解(强类型语言注意int型溢出)

转载于:https://www.cnblogs.com/jysdhr/p/7095341.html

你可能感兴趣的文章
KACK的处理方法
查看>>
POJ3438 ZOJ2886 UVALive3822 Look and Say【数列】
查看>>
IE6的height小BUG
查看>>
说说IUnitOfWork~DbContext对象的创建应该向BLL层公开
查看>>
强制卸载kernel
查看>>
js 杂项(一)函数篇
查看>>
pythonGUI-wxpython
查看>>
最小生成树模板 加 例题分析 (最小生成树类型汇总)
查看>>
web渗透测试中WAF绕过讲解(二)基于HTTP协议绕过
查看>>
【CSON原创】CSS的障眼法:利用border实现图片的翻转
查看>>
oracle:plsql学习总结(oracle database 10g sql 开发指南)
查看>>
〔转〕Word域的应用和详解2_等式和公式域
查看>>
FZU 1502 Letter Deletion
查看>>
javascript写的ajax请求
查看>>
寄存器是什么 有什么作用
查看>>
转载 《Python爬虫学习系列教程》学习笔记
查看>>
Flex组件的项目渲染器(ItemRenderer)使用总结
查看>>
python - 列表
查看>>
NGUI的输入框制作(attach- input filed script的使用)
查看>>
[异常笔记] zookeeper集群启动异常: Cannot open channel to 2 at election address ……
查看>>