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


Posted in PHP onFebruary 16, 2010
<?php 
//search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值 
function search($array, $k, $low=0, $high=0) 
{ 
if(count($array)!=0 and $high == 0) //判断是否为第一次调用 
{ 
$high = count($array); 
} 
if($low <= $high) //如果还存在剩余的数组元素 
{ 
$mid = intval(($low+$high)/2); //取$low和$high的中间值 
if ($array[$mid] == $k) //如果找到则返回 
{ 
return $mid; 
} 
elseif ($k < $array[$mid]) //如果没有找到,则继续查找 
{ 
return search($array, $k, $low, $mid-1); 
} 
else 
{ 
return search($array, $k, $mid+1, $high); 
} 
} 
return -1; 
} 
$array = array(4,5,7,8,9,10); //测试search函数 
echo search($array, 8); //调用search函数并输出查找结果 
?>
PHP 相关文章推荐
PHP中文件上传的一个问题
Sep 04 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
php中time()和mktime()方法的区别
Sep 28 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
PHP实现的购物车类实例
Jun 17 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
PHP递归创建多级目录
Nov 05 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 #PHP
GBK的页面输出JSON格式的php函数
Feb 16 #PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 #PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 #PHP
PHP IPV6正则表达式验证代码
Feb 16 #PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
Feb 16 #PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 #PHP
You might like
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
$.format,jquery.format 使用说明
2011/07/13 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
Python re模块介绍
2014/11/30 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python中函数参数调用方式分析
2018/08/09 Python
python取余运算符知识点详解
2019/06/27 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
英智兴达软件测试笔试题
2016/10/12 面试题
市场营销调查计划书
2014/05/02 职场文书
询价采购方案
2014/06/09 职场文书
文明礼仪标语
2014/06/13 职场文书
工地标语大全
2014/06/18 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
我是特种兵观后感
2015/06/11 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android