首先,用二分法的话数组必须是一个有序的数组,可以从大到小也可以从小到大,下边我给的是数组从小到大排列的方法:
$arr = array(2,4,6,7,8,9,10,12,14,16,18);
$low = 0; //要查找范围的最小键值
$search = 6; //要查询的值
$high = count($arr)-1; //计算出数组的长度
while($low <= $high){ //取得数组的中间键值
$mid = intval(($low+$high)/2);
if($arr[$mid]==$search){ //如果取出中间的下标值跟你要搜索的值相等的话,直接去除值得下标就行
echo "你要查找的值在数组内的下标为".$mid; break;
}else if($arr[$mid] > $search){
$high = $mid -1;
}else{
$high = $mid+1;
}
}
PHP写一个二分法查找一个值在数组中的位置
最新推荐文章于 2021-03-12 04:16:49 发布