设为首页 - 加入收藏 - 网站地图 - RSS订阅 村姑网-www.cunguer.com
当前位置:首页 > 网络编程 > PHP > 正文

php 二分查找算法代码实例,带中文注释

时间:2015-12-06 15:46:43 来源:村姑网 作者:喜欢安静 阅读:
导读:二分查找 算法是运用分治法的经典例子,也叫 折半查找 ,可以快速的在给定的N个元素中找到一个特定的元素(前提是这个N个元素是按顺序排序好的), 二分搜索 绝对是一个效率比较快的查找方法,所以在面试的时候二分查找也是面试官经常要考的一个算法,如果你既...

        二分查找算法是运用分治法的经典例子,也叫折半查找,可以快速的在给定的N个元素中找到一个特定的元素(前提是这个N个元素是按顺序排序好的),二分搜索绝对是一个效率比较快的查找方法,所以在面试的时候二分查找也是面试官经常要考的一个算法,如果你既快又好的给出的答案,相信你一定会面试成功。

【二分查找要求】:

1.必须是顺序存储结构。

2.有序排列,正序倒序均可,但一定要是有序。

二分查找算法php代码:

<?php
function bin_sch($array, $low, $high, $k)  //二分查找函数
{
    if ($low <= $high)   //如果LOW小于等于HIGH成立
    {
        $mid = intval(($low+$high)/2); //Intval取整
        if ($array[$mid] == $k)   //如果arry[下标]对应的值等于要查找的K
        {
            return true;      //返回真,二分查找成功
        }
        elseif ($k < $array[$mid])
        {   //如果k小于arry[下标],则执行这句
            return bin_sch($array, $low, $mid-1, $k);
        }
        else
        {   //如果以上2个条件都不满足,执行这句
            return bin_sch($array, $mid+1, $high, $k);
        }
    }
    return false; //LOW大于HIGH时直接返回假
}
 //定义一个数组array,1,2,4,6,8为该数组的元素
$array = array(1, 2, 4, 6, 8);
 //min取最小值,赋值给变量low
$low = min(1, 2, 4, 6, 8);
 //max取最大值,赋值给变量high
$high = max(1, 2, 4, 6, 8);
$k = 7;                         //$k为要查找的关键字
if(bin_sch($array, $low, $high, $k))  //如果调用二分查找函数后返回真
{
echo "二分查找成功";  //输出查找成功
}
else{
echo "二分查找失败";  //否则输出查找失败
}
?>

    这个php二分查找的源码示例到此解决,基本每句都已经做出了中文解释,如有任何问题,欢迎留言指正!

推荐内容