您现在的位置是:首页 > PHP技术PHP技术
php中使用二分法查找某个值
2017-08-10【PHP技术】2277 人已围观
简介 经常在QQ的PHP技术群里看到有人讨论PHP面试的话题,PHP的二分法出现频率很高,今天我们来说说PHP二分法的实现例子 已知一个数...
经常在QQ的PHP技术群里看到有人讨论PHP面试的话题,PHP的二分法出现频率很高,今天我们来说说PHP二分法的实现例子
已知一个数组里包含N个数字,使用二分法查出该数据
//声明一个数组
$data = [2,3,4,5];
//获取数组长度
$len = count($data)-1;
2.开始实现代码
/**
* @param $start 开始位置
* @param $len 数组长度
* @param $data 要查询的数组
* @param $value 要查询的值
* @return bool|float 成功返回查询到的值,否则返回false
*/
function search($start, $len, $data,$search)
{
while($start <= $len )
{
$mid = floor(($start + $len)/2);
if($data[$mid] == $search){
return $mid;
}elseif ($data[$mid] < $search){
$start = $mid+1;
}else{
$len = $mid-1;
}
}
return false;
}
3.调用方法查找值为5的
echo search(0, $len, $data,5);
输出结果为:3
关注宁波网站建设博客,更多精彩分享,敬请期待!
Tags:
很赞哦! ()
相关文章
随机图文
Thinkphp5.1 截取新闻标题长度的办法
tp5.1和原生php一样,在截取新闻标题长度的时候都是一样的考虑.中文在字符串的处理中比英文要多考虑一些东西,因为英文占一个位,中文占...
Thinkphp5.1上传文件判断问题
指定上传表单名称 $file = request()->file('表单内名称')上面是tp5.1中上传文件时的接收方...
Thinkphp3.1.3模板中(view视图)函数的使用
在模板中使用php函数 在thinkphp的模版html中,我们经常会遇到一些变量难以直接从action控制端直接处理,这些变量只有在模板...
Thinkphp5.1.30 分页think\paginator\driver\Bootstrap has no effect解决
Tp5.1.30对以往版本有很大的改进。$list = Db:name('表名')->paginate(10);返...




微信收款码
支付宝收款码