关于二分查找法?

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);
  1.    &起到什么作用?

  2.   $mid为什么要加1减1?

错过了年华
浏览 1264回答 1
1回答

习惯受伤

1、PHP中&(地址符)和C/c++中的地址符一致,也就是说是引用传递。函数内参数的任何改变都能改变实际传递给函数的变量值。2、+1,-1就是从中间往两边查找,所以叫了个二分法查找。
打开App,查看更多内容
随时随地看视频慕课网APP