汪1234

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  23 随笔 :: 0 文章 :: 4 评论 :: 16029 阅读

二分查找法

   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   梦一水知音~  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示