php 数组二分法查找函数代码

yipeiwu_com6年前PHP代码库
复制代码 代码如下:

<?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中的依赖注入。分享给大家供大家参考,具体如下: 依赖注入是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。 我到现在依然不大明...

php实现的Curl封装类Curl.class.php用法实例分析

本文实例讲述了php实现的Curl封装类Curl.class.php用法。分享给大家供大家参考。具体如下: <?php //curl类 class Curl { fu...

PHP 远程文件管理,可以给表格排序,遍历目录,时间排序

PHP 远程文件管理,可以给表格排序,遍历目录,时间排序

复制代码 代码如下: <?php $rootdir="./"; $spacenum=0; $filenum=0; $allfilesize=0; echo "<h1>文...

PHP取二进制文件头快速判断文件类型的实现代码

一般我们都是按照文件扩展名来判断文件类型,但是这个很不靠谱,轻易就通过修改扩展名来躲避了,一般必须要读取文件信息来识别,PHP扩展中提供了类似 exif_imagetype 这样的函数读...

关于PHP的curl开启问题探讨

今天在做一个新浪登录功能,新浪提供的PHP SDK里需要用到curl_init()函数,在调试的时候报找不到curl_init()的方法。 经搜索得知需要开启curl的php扩展,那cu...