PHP代码实现二分法查找

<?php
class test
{
    public function halfsearch($arr,$target)
    {
        $min = 0;
        $max = count($arr);
        $mid = floor(($min+$max) / 2);

        while(true){
            if($target > $arr[$mid]){
                $min = $mid + 1;
            }elseif($target < $arr[$mid]){
                $max = $mid -1;
            }else{
                return $mid;
            }

            if($max < $min){
                return -1;
            }

            $mid = floor(($min + $max) / 2);
        }
    }
}


    $abc = new test();
    $arr = [1,2,3,4,5,6,7,8,9,10];
    $array = $abc->halfsearch($arr,1);
    echo $array;
?>

猜你喜欢

转载自www.cnblogs.com/Mr-Echo/p/12157749.html