php 二分算法

来源:互联网 发布:三国志群英会java 编辑:程序博客网 时间:2024/06/06 09:37
//$arr是要查的数组,$low是最小值的下标,$top是最大值的下标,$target是要查询的值
function binaryRecursive(&$arr,$low,$top,$target){
    if($low<=$top)
    {
        $mid = ceil(($low+$top)/2);
        if($arr[$mid]==$target)
        {
            return $mid;
        }elseif($arr[$mid]<$target)
        {
            return binaryRecursive($arr,$mid+1,$top,$target);
        }else
        {
            return binaryRecursive($arr,$low,$mid-1,$target);
        }
    }else{
        return '不在里面';
    }
}
$arr = array(3,9,23,54,1111,11111111,55555555);
//sizeof($arr);

echo binaryRecursive($arr, 0, count($arr)-1,23);

ps:个人记录用,不喜勿喷