当前位置: 首页 > 图文教程 > 网络编程 > PHP > php 数组二分法查找函数代码

PHP
采用行写方式的聊天程序(之一)
采用行写方式的聊天程序(之二)
采用行写方式的聊天程序(之三)
php.net新闻拦截!
PHP的面向对象编程:开发大型PHP项目的方法(一)
PHP的面向对象编程:开发大型PHP项目的方法(二)
PHP的面向对象编程:开发大型PHP项目的方法(三)
PHP的面向对象编程:开发大型PHP项目的方法(四)
PHP的面向对象编程:开发大型PHP项目的方法(五)
用PHP发送MIME邮件(一)
用PHP发送MIME邮件(二)
用PHP发送MIME邮件(三)
用PHP发送MIME邮件(四)
用PHP发送MIME邮件(五)
用PHP发送MIME邮件(六)
一个广告轮播系统的例子(内含文件上传的方法)
PHP 留言簿(带Oracle数据库分页的显示功能)
PHP/MySQL教程 完整教程
老技术新外衣 如何设计一个包含Ajax技术的PHP网页
打造超酷的PHP数据饼图

PHP 中的 php 数组二分法查找函数代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 196 ::
收藏到网摘: n/a

search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值
复制代码 代码如下:

<?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函数并输出查找结果
?>