时间:2021-07-01 10:21:17 帮助过:20人阅读
//二分查找
function bin_search($array,$search){
$low=0;
$height=count($array)-1;//获取数组长度
while($low<=$height){
$mid=floor(($low+$height)/2);//获取中间数,强制转换为floor类型,防止出错
if($array[$mid]==$search){
return $mid+1;//返回已找到的序号
}else if($array[$mid]<$search){
//当中间值小于所查值时,则$mid左边的值都小于$search,此时要将$mid赋值给$low
$low=$mid+1;
}else if($array[$mid]>$search){
//此时说明中间值大于所查值,则$mid右边的所有值都大于$search,此时要将$mid赋值给$height
$height=$mid-1;
}
return "查找失败";//查找失败,数组中不存在该值
}
}
$arr=array(1,4,6,33,75,88,89,93);
echo bin_search($arr,33);
echo bin_search($arr,66);
?>
以上就介绍了PHP数据结构(1) 二分查找,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。