/**

* 二分查找,要求数组已经排好顺序

* @param  array $array 数组

* @param  int $low   数组起始元素下标

* @param  int $high  数组末尾元素下标

* @param   $k     要查找的元素

* @return mixed        成功时返回数组下标,失败返回-1

*/

function binSch($array,$low,$high,$k){

if ($low <= $high) {

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

if ($array[$mid] == $k) {

return $mid;

} elseif ($k

return binSch($array,$low,$mid - 1,$k);

} else{

return binSch($array,$mid + 1,$high,$k);

}

}

return -1;

}

// 测试:二分查找

$arr2 = array(5,9,15,25,34,47,55,76);

echo binSch($arr2,0,7,47);//结果为5

二分算法php,PHP练习-二分查找算法相关推荐

  1. 数据结构与算法--第17篇(查找算法)

    数据结构与算法 一,查找算法 1,简介: 2,顺序查找: 3,二分查找: 4,插值查找: 5,斐波那契(黄金分割法)查找: 一,查找算法 1,简介: 查找算法:常分为四种: 顺序查找(线性查找): 二 ...

  2. 算法基础:常用的查找算法知识笔记

    1.查找表和查找效率的概念 查找表是指由同一类型的数据元素构成的集合.分为静态查找表和动态查找表. 1.1 静态查找表 1.查询某个特定元素是否在查找表的集合当中 2.查询某个特定元素的各种属性 1. ...

  3. php折半查找算法,PHP如何实现折半查找算法

    本文主要介绍了PHP实现的折半查找算法,简单描述了折半查找的原理,并结合实例形式分析了php采用递归与非递归方式实现折半查找算法的相关操作技巧,需要的朋友可以参考下,希望能帮助到大家. 定义:折半查找 ...

  4. 查找算法-4种常用的查找算法

    文章目录 一.查找算法是什么? 查找算法简介 二.查找算法介绍及实现 1.顺序查找 算法描述 代码实现: 2.二分查找/折半查找 算法描述 代码实现: 3.插值查找 算法描述 代码实现: 4.斐波那契 ...

  5. 结构与算法分享排序规则与查找算法

    一.递归算法 递归就是方法自己调用自己,每次调用时传入不同的变量,可以让代码变得简洁.递归算法在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法,递归式方法可以被用于解决很多的计算 ...

  6. java快速查找算法_Java实现的快速查找算法示例

    本文实例讲述了Java实现的快速查找算法.分享给大家供大家参考,具体如下: 快速查找算法,可以根据想要找的是第几个大的数,每次循环都能固定下来一个数在数组完整排完序之后的位置,每次循环都能定一个数的位 ...

  7. php大数组查找算法,PHP简单的数组查找算法分享

    PHP中对于数组的查找可以用顺序查找或二分法查找.其中顺序查找比较简单,就是逐个比较查找.但缺点也较明显,如果查找的元素恰巧在最后一个,循环的次数过多. 1.顺序查找算法描述 在数组中逐个查找,确认是 ...

  8. java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

  9. 二分查找算法为什么要先排序

    其实二分查找算法就和我们在一个英文字典中找一个单词一样,比如要找middle这个单词,先把字典翻到大概中间的位置,那么现在字典就被分成两个部分了,middle这个单词要么在第一个部分,要么在第二个部分 ...

  10. 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

最新文章

  1. python面试题_Python面试题大全
  2. Adversarial Validation 微软恶意代码比赛的一个kenel的解析
  3. imoocLinux环境变量配置文件笔记
  4. C# 匿名委托、匿名方法、匿名对象、Lambda表达式
  5. 订单状态 css_CSS状态2019
  6. php 添加失败是什么原因,安装zblog提示“创建c_option.php失败”的原因和解决办法...
  7. Nodejs获取MySQL数据_nodejs同步调用获取mysql数据时遇到的大坑
  8. 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅵ
  9. SqlServer2008R2软件下载安装教程
  10. 俄罗斯方块 java_java代码实现俄罗斯方块
  11. 安装axios指定版本
  12. Windows DLL 注入技术
  13. matlab list函数参数,Matlab 函数参数汇总
  14. 【洞察】152号令,重量级行业信息技术法规
  15. 【CV】ShuffleNet:通过 GroupConv 和 ChannelShuffle 实现轻量化 CNN 架构
  16. [jzoj 4244] 【五校联考6day2】yi {贪心}
  17. 微信开发工具-命令行的使用
  18. 为知笔记docker搭建
  19. 【交流学习】厦门大学到福州大禹电子交流超声波水下通讯技术
  20. 剑指offer刷题记录(上)

热门文章

  1. JVM调优总结(五)-调优方法(转载)
  2. ubuntu下进程kidle_inject致使编译软件很慢
  3. 在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法...
  4. javascript运行机制之执行顺序详解
  5. Docker(十二):Docker集群管理之Compose
  6. 【Windows 10 应用开发】使用快捷访问键
  7. python多线程和多进程使用
  8. Linux 进程间通讯详解五
  9. 网页设计界面 电脑版设计
  10. redo log重做日志缓冲