首页 > 其他分享 >二分查找法

二分查找法

时间:2023-03-14 16:24:28浏览次数:40  
标签:二分 arr findVal hight 查找 low

二分查找法

   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);

标签:二分,arr,findVal,hight,查找,low
From: https://www.cnblogs.com/qjwlv/p/17215282.html

相关文章

  • NXP S32K312从零开发资源查找记录
    首先就是下载开发环境(40条消息)小猫爪:S32K3学习笔记01-S32K3RTD【MCAL&SDK】的使用和环境搭建_mcal开发sdk开发_小猫爪的博客-CSDN博客上述网址在安装S32DS.3.4_b201......
  • 在 Linux 中如何查找父进程 PPID?
    导读内核创建的进程称为“父进程”。从父进程派生或产生的进程称为“子进程”。父进程可能由多个子进程组成,每个子进程都具有唯一的PID(进程ID)但共享相同的PPID。......
  • LeeCode例题——二分查找
    1.二分查找:(面对一个升序排列的数组)classSoulution{public:intsearch(vector<int>&nums,inttarget){//函数名(数组,变量)intleft=0,right=nums.size()-......
  • 用python编写程序,使用筛选法查找并输出小于1000的所有素数
    #创建一个布尔数组,其中的值都是True,数组下标为i表示数字i是否为素数prime=[Trueforiinrange(1000)]#0和1不是素数,因此将它们的值设置为Falseprime[0]=Falseprim......
  • 插值查找——C语言描述
    插值查找——C语言描述目录插值查找——C语言描述0测试用例框架1定义2代码4测试用例0测试用例框架https://blog.csdn.net/m0_59469991/article/details/127137119?......
  • 1460. 我在哪?(二分,哈希)
    https://www.acwing.com/problem/content/167/n为100,因此对于我们这种枚举k值,枚举两个子串起点来判定是否存在相同子串的暴力做法O(N^4)是可以过的#include<iostream>#......
  • 二分
    情况导入如果在生活中,有一个人,让你猜在\(1\)到\(100\)之间的一个数,你该怎么猜?假设答案是\(20\),那我们应该这样猜:先猜\(50\),大了。随后猜\(25\),还是大了。再猜......
  • 二分法查找
    原理一个数据有升序的数组,每次取中间元素比较,如果大于需要查找的元素,则去后面数据,中间数据作为起点最后数据作为终点再定中间数据比较。如果小于需要查找的数据,则取前面......
  • 二分图
    最大匹配最基本的东西,可以用dinic在\(\mathcal{O}(m\sqrtn)\)的时间内解决。Hall定理判断二分图是否存在完美匹配的定理。默认左部点数小于等于右部点数,定义\(N......
  • HJ60 查找组成一个偶数最接近的两个素数
    描述任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。 数据范围:输入的数据满足 4\le......