PHP实现二分查找

来源:互联网 发布:淘宝大金空调贴牌造假 编辑:程序博客网 时间:2024/06/04 20:11
public function run($args){    @set_time_limit(0);    @ini_set('memory_limit', '2048M');    $search = $args[0];//要查找的值    $arr = array(1,2,3,4,5,6,7,8,9,13,14,15,16,16,17,18);//排好序的    $num = count($arr);//总长度    $index = $num/2;    $count = 0;//查询次数    $pre = 0;//初始位置    while(true){        $count++;        //找到结果        if($arr[$index] == $search){            echo $index."\n";            break;        }        //没有找到结果        if($index == $num || $index == 0){            echo "no value!\n";            break;        }        //向上查询        if($arr[$index] < $search){            $pre = $index;            $index = floor(($index+$num)/2);
}        //向下查询        if($arr[$index] > $search)            $index = floor(($index+$pre)/2);    }    echo $count;}
原创粉丝点击