博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP代码实现二分法查找
阅读量:6250 次
发布时间:2019-06-22

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

需求:定义一个函数接收一个数组对象和一个要查找的目标元素,函数要返回该目标元素在数组中的索引值,如果目标元素不存在数组中,那么返回-1表示。

//折半查找法(二分法): 使用前提必需是有序的数组。//如果是从小到大的数组function halfSearch($arr, $target){    //定义三个变量 分别记录最小、最大、中间元素的索引值    $min = 0;    $max = count($arr) - 1;    $mid = floor(($min + $max) / 2);    while (true) {        if ($target > $arr[$mid]) {
//如果目标值大于中间值,目标值应该在中间值右边 $min = $mid + 1; } elseif ($target < $arr[$mid]) {
//如果目标值小于中间值,目标值应该在中间值左边 $max = $mid - 1; } else {
//如果中间值等于目标值 那么中间值的索引即为要查找的目标元素的索引 return $mid; } //如果max或者min 发生变化后出现下面这种情况 说明目标值不在该数组范围内 if ($max < $min) { return -1; } $mid = floor(($min + $max) / 2); }}

 

转载于:https://www.cnblogs.com/jxl1996/p/10138855.html

你可能感兴趣的文章
Android访问远程网页取回json数据
查看>>
Android之等比例显示图片
查看>>
HTML5 data-* 自定义属性
查看>>
linux系统装windows时需要注意的问题
查看>>
android textview 行间距
查看>>
HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP
查看>>
[JS5] 利用onload执行脚本
查看>>
剑指OFFER之矩形覆盖(九度OJ1390)
查看>>
Scrum 学习笔记
查看>>
Ext.form.ComboBox常用属性详解
查看>>
HTTP Header 详解
查看>>
Java中的HashMap 浅析
查看>>
调和映射的Bochner公式
查看>>
windows批处理
查看>>
网页上的摄影展:等高响应布局实现
查看>>
IE无法打开internet网站已终止操作的解决的方法
查看>>
Plus One leetcode java
查看>>
FineUI(专业版)公测版发布(这速度,真TM快!)
查看>>
boost中asio网络库多线程并发处理实现,以及asio在多线程模型中线程的调度情况和线程安全。...
查看>>
LINQ To SQL 语法及实例大全
查看>>