二分法
原创
©著作权归作者所有:来自51CTO博客作者彩霞飞飞的原创作品,请联系作者获取转载授权,否则将追究法律责任
$array = array(1,2,3,4,11,12,124,1245);
//普通查找的方法
$res = Loop($array,12);
var_dump($res);
function Loop($arr,$v)
{
$num = 0;
$size = count($arr)-1;
for($i=0; $i<$size; $i++)
{
$num++;
if($v == $arr[$i]){
return $i ;
}
}
}
//二分法
$res = find($array,12);
var_dump($res);
function find($arr,$v)
{
$start = 0;
$end = count($arr) - 1;
while($start <= $end)
{
$index = intval(($start + $end) / 2);
if($v < $arr[$index])
{
$end = $index - 1;
}
elseif($v > $arr[$index])
{
$start = $index + 1;
}
else
{
return $index;
}
}
return -1;
}
上一篇:PHP中的逆波兰式应用
下一篇:长网址转为短网址
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python二分法 Python二分法代码
Python 二分法
数组 浮点数 死循环 -
java arcsin 二分法 二分法java代码
二分法: 1、二分法查找算法是建立在排序的基础之上的,即没有排序的 数据是无法查找的; 2、二分法查找的效率高于"一个挨着一个"的这种查找方式; 3、二分法查找原理?我们用一个例子来说明; &nb
java arcsin 二分法 java 二分法 数组 二分法查找