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 快速生成 Flash 动画的方法
Mar 06 PHP
php 调用远程url的六种方法小结
Nov 02 PHP
超级简单的php+mysql留言本源码
Nov 11 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
php 常用算法和时间复杂度
Jul 01 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
php递归遍历删除文件的方法
Apr 17 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 PHP
用php定义一个数组最简单的方法
Oct 04 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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程序中防止盗链
2008/04/09 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
javascript第一课
2007/02/27 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
python实现决策树分类
2018/08/30 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
Python内置加密模块用法解析
2019/11/25 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
keras slice layer 层实现方式
2020/06/11 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
市政管理求职信范文
2014/05/07 职场文书
大学生作弊检讨书
2014/09/11 职场文书
老乡会致辞
2015/07/28 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技