您的位置:首页 > 编程语言 > PHP开发

用php二分法查找一个值在数组中的位置

2017-10-20 17:17 615 查看
首先,用二分法的话数组必须是一个有序的数组,可以从大到小也可以从小到大,下边我给的是数组从小到大排列的方法:

$arr = array(2,4,8,9,10,12,14,16,18,22,36,46,54);

$low = 0; //要查找范围的最小键值

$search =
22; //要查找的值

$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
相关文章推荐