前提是 传递的数组必须是有序数组
function binarySearch(&$arr,$findvalue,$leftIndex,$rightIndex)
{
//当 $leftIndex>$rightIndex 说明没有找到
if($leftIndex>$rightIndex)
{
echo '找不到该数';
return;
}
//找到中间这个数
$middleIndex=round(($leftIndex+$rightIndex)/2);
if($findvalue>$arr[$middleIndex]){
//向后查找
binarySearch($arr,$findvalue,$middleIndex+1,$rightIndex);
}else if($findvalue<$arr[$middleIndex]){
//向前查找
binarySearch($arr,$findvalue,$leftIndex,$middleIndex-1);
}else{
echo '找到这个数,下标为'.$middleIndex;
}
}