zoukankan      html  css  js  c++  java
  • 查找

    1.顺序查找

    $arr = array(1,2,3,4,4);
    //顺序查找
    function search($value, &$arr)
    {
        $arr_search = array();
        foreach ($arr as $k=>$v)
        {
            if($v==$value)
            {
                $arr_search[$k] = $v;
            }
        }
        
        if(empty($arr_search))
        {
            return false;
        }else{
            return $arr_search;
        } 
    }

    var_dump(search(4,$arr));

     2.二分法查找

    /**
     * 二分查找,前提是该数组必须是个有序的才行,如果不是必须先排序
     
    */
    $arr = array(1,2,3,4,5,6);
    function binarySearch($value, &$arr$leftIndex$rightIndex)
    {
        if($rightIndex<$leftIndex)
        {
            echo '找不到该数';
            exit();
        }
        
        //首先找到中间数,并不一定非得是正中间
        $middleIndex = round(($rightIndex+$leftIndex)/2);
        
        //如果大于则,向后找
        if($value>$arr[$middleIndex]){
            binarySearch($value$arr$middleIndex+1, $rightIndex);
        }elseif($value<$arr[$middleIndex]){
            binarySearch($value$arr$leftIndex$middleIndex-1);
        }else{
            echo '找到了,下标是:'.$middleIndex;
        }
    }

    print_r(binarySearch(6, $arr, 0, count($arr)-1));
  • 相关阅读:
    关于IIS7发布网站
    二叉树遍历逆向
    山药熬粥补脾
    山萸肉补肝阴
    生黄芪痔疮
    酸石榴
    生石膏粉清实热
    熟地黄被肾阴
    龙眼肉(桂圆肉)
    鸡内金消食导滞
  • 原文地址:https://www.cnblogs.com/siqi/p/2667391.html
Copyright © 2011-2022 走看看