php 二分法
作者: DH 日期: 2009-12-03 13:08
CODE:
<?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函数并输出查找结果
?>
评论: 0 |
引用: 0 |
阅读: 73
发表评论
订阅
上一篇
返回
下一篇
标签:

Linux下安装memcached和编译PHP扩展 (2009-09-16 10:40)
PHP对MYSQL数据库进行事务处理及表锁定 (2009-09-16 09:31)
PHP截取字符串 包函HTML标志的也可截取 (2009-06-25 13:48)
PHP中二维数组的排序 (2009-05-22 10:51)
缩略图程序 for ImageMagick for php(MagickWand) (2008-12-03 16:16)
PHP中交替取出MYSQL中两个或多个表中的值 引 (2008-11-25 13:50)
php mail class (2008-07-11 11:46)
PHP里面实现JS的escape和unescape函数 (2008-06-13 15:44)
常用正则表达式 (2007-06-18 17:31)