PHP实现二分查找算法
二分查找算法的前提:查找的数列为有序数列
/**
* @param $arr // 查询序列
* @param $target //要查找的值
* @param $low // 序列起始位置
* @param $high // 序列结束位置
* @return false|float|int
*/
function BinarySort($arr,$target,$low,$high)
{
$len = count($arr);
if(!$len) return -1;
$middle = ceil(($low+$high)/2); // 找到中间位置与目标值作比较
if($low > $high) return -1; // !!!很重要,如果查找的数据不存在,这是退出递归的条件
if($arr[$middle]==$target) return $middle;
else if($arr[$middle]<$target) return BinarySort($arr,$target,$middle+1,$high); // 中间位置所在值大于查找值,则在中间位置之后的序列查询即可
else return BinarySort($arr,$target,$low,$middle-1); // 反之,在中间位置之前的序列查找
}
$arr = [1,2,3,5,6,8,9];
echo BinarySort($arr,8,0,count($arr)-1);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】