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 什么是PEAR?(第三篇)
Mar 19 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
深入分析PHP设计模式
Jun 15 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
239军机修复记
2021/03/02 无线电
在线短消息收发的程序,不用数据库
2006/10/09 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
js实现单一html页面两套css切换代码
2013/04/11 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
JavaScript实现文本框中默认显示背景图片在获得焦点后消失的方法
2015/07/01 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
json前后端数据交互相关代码
2018/09/19 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python3基础之基本数据类型概述
2014/08/13 Python
Python列表list数组array用法实例解析
2014/10/28 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
Python Selenium库的基本使用教程
2021/01/04 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
机关门卫岗位职责
2013/12/30 职场文书
自荐信的基本格式
2014/02/22 职场文书
租房协议书范本
2014/04/09 职场文书
2014年超市工作总结
2014/11/19 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL