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 数组二分法查找函数代码
基础教程推荐
猜你喜欢
- Laravel Validator自定义错误返回提示消息并在前端展示 2023-01-14
- PHP与Perl之间知识点区别整理 2022-12-30
- Yii框架操作cookie与session的方法实例详解 2023-02-05
- CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析 2022-12-29
- Laravel框架Eloquent ORM新增数据、自定义时间戳及批量赋值用法详解 2023-03-17
- php实现姓名根据首字母排序的类与方法(实例代码) 2022-10-18
- PHPwind整合最土系统用户同步登录实现方法 2023-12-07
- PHP单例模式Singleton Pattern的原理与实现介绍 2023-07-12
- 微信公众号开发之获取位置信息php代码 2022-11-02
- PHP获取对象属性的三种方法实例分析 2022-12-04
