汪1234

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

二分查找法

   function binarySearch($arr, $val, $hight, $low = 0) {
        $i = 0;
        while ($low <= $hight) {
            $i++;
            $mid = ceil($low + ($hight - $low) / 2);
            if ($arr[$mid] == $val) {
                echo $i . PHP_EOL;
                return $mid;
            } elseif ($arr[$mid] > $val) {
                $hight = $mid - 1;
            } else {
                $low = $mid + 1;
            }
        }
        
        return - 1;
    }

调用函数

        $arr = range(20, 40);
        $low = 0;
        $hight = count($arr) - 1;
        
        $findVal = rand(10, 50);
        echo $findVal . PHP_EOL;
        $result = binarySearch($arr, $findVal, $hight, $low);
posted on 2023-03-14 16:09  梦一水知音~  阅读(10)  评论(0编辑  收藏  举报