//二分查找
function binarySearch(&$arr,$findVal,$leftIndex=0,$rightIndex=""){
if($rightIndex==NULL){
$rightIndex=count($arr);
}
//当$rightIndex>$leftIndex说明没有找到
if($rightIndex<$leftIndex){
echo "找不到该数";
return ;
}
//找到中间这个数
$middleIndex=round(($rightIndex+$leftIndex)/2);
//如果大于则向后面找
if($findVal>$arr[$middleIndex]){
binarySearch($arr, $findVal, $middleIndex+1, $rightIndex);
}else if($findVal<$arr[$middleIndex]){
binarySearch($arr, $findVal, $leftIndex, $middleIndex-1);
}else{
echo "找到了 下标为{$middleIndex}";
}
}
$arr=array(1,2,3,4,5,6,33,444);
echo binarySearch($arr, 6,3,4);
二分查找
最新推荐文章于 2023-05-28 13:59:52 发布