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
提交
取消