博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查找算法之二分查找法
阅读量:4659 次
发布时间:2019-06-09

本文共 940 字,大约阅读时间需要 3 分钟。

前提条件是

1.数组必须是索引数组

2.数组必须是一个排好序的数组(可参考上一篇进行排序)

$a = array(11,13,18,28,29,33,34,52,54,61,68,79,80,84,88,89,92,93,98);    $search = 35;    $len = count($a);    $v1 = binary_search($a, $search, 0, $len-1);    echo "结果为:";    var_dump($v1);    function binary_search($arr, $s, $begin ,$end) {        $mid = floor(($begin+$end)/2);        $mid_value = $arr[$mid];        if ($mid_value == $s) {            return true;        }        else if ($mid_value > $s) {            if ($begin > $mid-1) { //如果开始位置比结束位置大,表示肯定找不到                return false;            }            //中间的数比要找的数大,就去左边找              $re = binary_search($arr, $s, $begin, $mid-1);        }        else {            if ($mid+1 > $end) { //如果开始位置比结束位置大,表示肯定找不到                return false;            }            //中间的数比要找的数小,就去右边找            $re = binary_search($arr, $s, $mid+1, $end);        }        return $re;    }

  

转载于:https://www.cnblogs.com/zst062102/p/6899826.html

你可能感兴趣的文章
C3P0连接池工具类使用
查看>>
SVN常用命令备注
查看>>
孩子教育
查看>>
解决Cacti监控图像断断续续问题
查看>>
结构体的传参理解成员的存储方式
查看>>
python 进程与线程(理论部分)
查看>>
什么是API
查看>>
强名称程序集(strong name assembly)——为程序集赋予强名称
查看>>
1028. List Sorting (25)
查看>>
BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
查看>>
ubuntu 重启命令,ubuntu 重启网卡方法
查看>>
Linux的学习:
查看>>
JavaScript中的原型继承原理
查看>>
Python logger模块
查看>>
jquery控制css的display(控制元素的显示与隐藏)
查看>>
关于python做人工智能的一个网页(很牛逼)
查看>>
判断控件的CGRect是否重合,获取控件的最大XY值
查看>>
GET请求在Tomcat中的传递及URI传递
查看>>
P4878 道路修建-美国
查看>>
dp练习
查看>>