您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP二分查找的困惑

2025/11/3 6:50:56发布13次查看
php二分查找的疑惑
$arr[count($arr)-1]){
echo 找不到该值;
}else if($findvalecho 找不到该值;
}else{
$middleindex=round(($leftindex+$rightindex)/2);
if ($arr[$middleindex]search($arr,$findval,++$middleindex,$rightindex);
}else if($arr[$middleindex]>$findval){
search($arr,$findval,$leftindex,--$middleindex);
}else{
echo 找到下标为$middleindex;
}
}
}
请问下各位朋友,这段代码执行下来,是不是执行了好几个函数。有朋友能深入讲解下时序图吗? 谢谢,感激不尽。
------解决思路----------------------
$arr = array(1,3,4,5,7,8,9);
search($arr,7,0,count($arr)-1);
function search($arr,$findval,$leftindex,$rightindex){
echo $findval,$leftindex,$rightindex\n; //加上这句
if($findval>$arr[count($arr)-1]){
echo 找不到该值;
}else if($findval<$arr[0]){
echo 找不到该值;
}else{
$middleindex=round(($leftindex+$rightindex)/2);
if ($arr[$middleindex]$findval){
search($arr,$findval,$leftindex,--$middleindex);
}else{
echo 找到下标为$middleindex;
}
}
}
7,0,6
7,4,6
7,4,4
找到下标为4
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product