前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 实现二分查找

PHP 实现二分查找

原创
作者头像
阿沐
修改2021-01-04 17:58:30
5280
修改2021-01-04 17:58:30
举报
文章被收录于专栏:php基础php基础
代码语言:php
复制
$arr = [1, 4, 6, 8, 23, 43, 57]; //数组必须是有序的
$count = count($arr);
    function middle($arr, $find)
    {

        $len = count($arr);
        if ($len == 1) {
            return $arr[0] == $find ? 0 : -1;
        }
        $low = 0;
        $high = $len - 1;
        while ($low <= $high) {
            $mid = $low + (($high - $low) >> 1);
            if ($arr[$mid] == $find) {
                return $mid;
            } else {
                if ($arr[$mid] > $find) {
                    $high = $mid - 1;
                } else {
                    $low = $mid + 1;
            }
        }
        return -1;

    }
var_dump(middle($arr, 23)); //4
die;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档