二分查找算法(有关二分法查找算法的效率(性能))

二分查找算法
二分查找算法的前提:

  1,针对的是索引数组;

  2,针对的是已经排好的数组。

代码演示:

复制代码
//函数功能:从数组$arr中的位置$begin开始到位置$end之间找数据$s
function binary_search($arr,$s,$begin,$end)
{
    $mid = floor(($begin+$end)/2); // 定位中间的位置
    $mid_value = $arr[$mid];//取得中间项的值
    if($mid_value == $s)
    {
        return true;
    }else if($mid_value >$s)
    {
        if($begin > $mid-1)//如果开始位置都比结束位置大了,表示肯定找不到了
        {
            return false;
        }
        //中间项比要找的$s大,就去左边找吧:
        $re = binary_search($arr,$s,$begin,$mid-1);
    }else
    {
        if($mid+1 > $end)//如果开始位置比结束位置大了,表示肯定找不到了
        {
            return false;
        }
        //中间项比要找的$s小,就去右边找吧;
        $re = binary_search($arr,$s,$mid+1,$end);
    }
    return $re;
}
复制代码
测试代码:

复制代码

 

你可能感兴趣的:(二分查找算法(有关二分法查找算法的效率(性能)))