php 数组二分法查找函数代码

PHP中数组二分法查找函数代码:

function binary_search($arr, $key) {
    $low = 0;
    $high = count($arr) - 1;

    while ($low <= $high) {
        $mid = intval(($low + $high) / 2);

        if ($arr[$mid] > $key) {
            $high = $mid - 1;
        } elseif ($arr[$mid] < $key) {
            $low = $mid + 1;
        } else {
            return $mid;
        }
    }

    return -1;
}

该代码实现了基本的二分法查找,通过输入数组和要查找的键来查找键的位置。

其中,$low为数组最小值的下标,$high为数组最大值的下标,$mid为中间值的下标。每一次循环,都将区间缩小一半,直到找到目标值或者缩小到区间为空。

示例1:

$arr = [1, 2, 3, 4, 5];
$key = 3;
$index = binary_search($arr, $key); // 2

if ($index !== -1) {
    echo "键为".$key."的元素下标为".$index;
} else {
    echo "键为".$key."的元素不存在";
}

数组 $arr 中包含了 1, 2, 3, 4, 5 五个数,要查找的键为3,则输出结果为“键为3的元素下标为2”。

示例2:

$arr = [1, 3, 5, 7, 9];
$key = 4;
$index = binary_search($arr, $key); // -1

if ($index !== -1) {
    echo "键为".$key."的元素下标为".$index;
} else {
    echo "键为".$key."的元素不存在";
}

数组 $arr 中包含了 1, 3, 5, 7, 9 五个数,要查找的键为4,则输出结果为“键为4的元素不存在”。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 数组二分法查找函数代码 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月25日

相关文章

  • CentOS搭建PHP服务器环境简明教程

    CentOS搭建PHP服务器环境的教程可以分为以下几个步骤: 1. 安装Apache服务 首先要安装Apache服务,可以通过以下命令实现: yum install httpd 安装完成之后需要启用Apache服务: systemctl enable httpd 然后启动Apache服务: systemctl start httpd 这样就可以成功安装和启动…

    PHP 2023年5月24日
    00
  • PHP获取时间戳、获取天周月的起始时间、指定时间所在周、指定时间的各个周等相关函数

    一、时间戳和日期互相转换 // 获取时间戳 $date = time(); // 获取当前时间戳 $date = mktime(0, 0, 0, 10, 10, 2020); // 获取指定时间的时间戳 2020年10月10日0时0分0秒 // 日期转换为时间戳 $date = “2019-08-08 08:08:08”; $timestamp = strt…

    PHP 2023年5月4日
    00
  • php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】

    PHP实现有序数组打印或排序的方法 在PHP中,实现有序数组的打印或排序,有多种方法可供选择。本文将分享其中两种具有代表性的方法,分别是使用sort()函数和array_multisort()函数,而且我们还提供了Python、C及Go语言的实现代码。下面,我们详细讲解这两种方法的实现步骤。 使用sort()函数 sort()函数是PHP中用来对数组进行排序…

    PHP 2023年5月26日
    00
  • PHP 数组基础知识小结

    PHP 数组基础知识小结 什么是数组 在 PHP 中,数组(Array)是一种非常重要的数据类型,它允许我们在一个单独的变量中存储多个值。PHP 数组支持数字、字符串和布尔值等多种类型作为键名(key),同时也支持多维数组。 创建数组 可以通过以下方式创建一个 PHP 数组: // 方式一:使用 array() 函数 $array1 = array(1, 2…

    PHP 2023年5月26日
    00
  • 简单谈谈PHP中的include、include_once、require以及require_once语句

    当编写PHP应用程序时,经常需要在一个文件中引用其他文件中定义的函数或类。为此,PHP提供了四种语句:include、include_once、require和require_once。这些语句都可以用来引用一个文件,但它们之间有一些区别,下面将逐一讲解。 include include ‘filename.php’; include语句可以将filenam…

    PHP 2023年5月27日
    00
  • php数组函数序列之in_array() – 查找数组中是否存在指定值

    让我来详细讲解一下“php数组函数序列之in_array() – 查找数组中是否存在指定值”的完整攻略。 概述 在 PHP 语言中,in_array() 函数可以用于判断一个值是否存在于一个数组中。如果存在,则返回 true,否则返回 false。 语法 in_array($needle, $haystack, $strict); 参数说明:- $needl…

    PHP 2023年5月26日
    00
  • php删除数组指定元素实现代码

    下面我就来详细讲解一下“php删除数组指定元素实现代码”的完整攻略。 一、php删除数组指定元素的实现方法 1. 使用unset函数删除数组指定元素 在php中,我们可以使用unset函数来删除数组中的指定元素。unset函数可以接受一个或多个参数,每个参数可以是字符串、变量名或数组元素。若参数是一个数组元素,那么该元素会被删除掉。 以下是使用unset函数…

    PHP 2023年5月26日
    00
  • 华硕天选2游戏本怎么样 华硕天选2游戏本详细评测

    “华硕天选2游戏本怎么样”——详细评测 一、外观设计 1. 外形 华硕天选2游戏本采用黑色金属外壳,外形简洁大方,给人以高贵、精致的感觉。尤其是屏幕背面采用了斜角设计,使整台笔记本看起来更加动感。 2. 尺寸 华硕天选2游戏本的尺寸为360 × 262 × 19.9 mm,重量约为1.9 kg。整体大小合适,便携性良好,可随时携带。 3. 接口 华硕天选2游…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部