php外包、微信开发、app开发尽在蓝普!PHP技术服务商

数组之二分查找

原理:
1)先计算出数组的中间值并向上取整
2)判断中间值是否和要查找的值相同,相同则直接返回
3)不相同就判断大小如果比中间值大,就用array_slice从中间的下一个位置截取片段生成新数组,反之同样方法截取片段。
4)然后用递归的手法,直至找到相应元素,如果到最后也没有找到,也就是数组长度为1时还没有找到,就直接返回没有此元素;

function secSearch($data , $search){

$mid = ceil(count($data) / 2) – 1;

if( $data[$mid] $search ){

return $data[$mid];

}

if( count($data) == 1 ){

return ‘没有找到’;

} if($data[$mid] > $search){

$data = array_slice($data,0,$mid);

return twoF( $data,$search );

} if( $data[$mid] < $search){

$data = array_slice($data,$mid+1);

return twoF( $data,$search );

}

}

标签:

转载请注明来源蓝普网络并以链接形式标明本文地址
本文链接: http://www.wbphp.cn/html/y06/15445.html

作者:cui, wenyong | 日期:2018-06-29 | 分类:新闻中心 | 评论:0 条 | 浏览:4


上一篇:
下一篇:

发表评论

*

* 以便邮件回复


给我汇款 | 合作流程 | 看看我们 | 加入我们 Copyright 2008-2016 php外包与洛阳php培训服务商. Some Rights Reserved. 豫ICP备12025288号-1