二分查找

原创 2016年06月02日 10:14:28
/*二分查找 是针对一个已经进行排序的数组进行查找*/
    /*
        $arr 要查找的数组
        $v 要查找的数
        $start 要查找的开始位置
        $end 要查找的结束位置
    */
    function binary_search($arr, $v, $start, $end){
         if($start > $end){
            return false;
         }else{
             $middle = (int)(($start + $end)/2);
             if($arr[$middle] == $v){
                return $middle + 1;
             }else if($arr[$middle] > $v){
                return binary_search($arr, $v, $start, $middle-1);
             }else{
                return binary_search($arr, $v, $middle+1, $end);
             }        
         }        
    }
    $arr = array(2, 3, 4, 6, 8, 10);
    //获得数组的长度
    $len = count($arr);
    $result = binary_search($arr, 3, 0, $len-1);
    if( $result === false){
        echo "没找到啊<br />";
    }else{
        echo "第" . $result ."项<br />";
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)