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生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
测试php函数的方法
Nov 13 PHP
php随机显示图片的简单示例
Feb 15 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP实现简易blog的制作
Oct 24 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
Mar 22 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 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中上传大体积文件时需要的设置
2006/10/09 PHP
在PHP中使用模板的方法
2008/05/24 PHP
php修改时间格式的代码
2011/05/29 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
索趣科技的答案
2007/02/07 Javascript
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
js如何判断用户是在PC端和还是移动端访问
2014/04/24 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
Python如何合并多个字典或映射
2020/07/24 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
Footshop法国:购买运动鞋
2020/01/19 全球购物
幼儿园安全检查制度
2014/01/30 职场文书
秋季运动会广播稿
2014/02/22 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
研究生个人学年总结
2015/02/14 职场文书