function binarySearch(&$arr,$findVal,$start,$end) //1
{
if($end<$start)
{
echo "找不到该数";
}
$mid = round(($end+$start)/2);
if($findVal>$arr[$mid])
{
binarySearch($arr,$findVal,$mid+1,$end);
}
else if($findVal<$arr[$mid])
{
binarySearch($arr,$findVal,$start,$mid-1);
}
else
{
echo "找到这个数,下标是$mid";
}
}
$arr = array(2,3,5,8,9);
echo binarySearch($arr,3,0,count($arr)-1); &起到什么作用? $mid为什么要加1减1?
1 回答
已采纳
习惯受伤
TA贡献885条经验 获得超1144个赞
1、PHP中&(地址符)和C/c++中的地址符一致,也就是说是引用传递。函数内参数的任何改变都能改变实际传递给函数的变量值。
2、+1,-1就是从中间往两边查找,所以叫了个二分法查找。
添加回答
举报
0/150
提交
取消