• 查找算法


    <?php  
        header("content-type:text/html;charset=utf-8");
        //二分查找法  (排序好的数组)
        function binSearch($arr,$search){  
            $height=count($arr)-1;  
            $low=0;  
            while($low<=$height){  
                $mid=floor(($low+$height)/2);//获取中间数  
                if($arr[$mid]==$search){  
                    return $mid;//返回  
                }elseif($arr[$mid]<$search){//当中间值小于所查值时,则$mid左边的值都小于$search,此时要将$mid赋值给$low  
                    $low=$mid+1;  
                }elseif($arr[$mid]>$search){//中间值大于所查值,则$mid右边的所有值都大于$search,此时要将$mid赋值给$height  
                    $height=$mid-1;  
                }  
            }  
            return "查找失败";  
        }   
        //二分查找递归实现  (排序号的数组)
        function binSearch2($arr,$low,$height,$k){  
            if($low<=$height){  
                $mid=floor(($low+$height)/2);//获取中间数  
                if($arr[$mid]==$k){  
                    return $mid;  
                }elseif($arr[$mid]<$k){  
                    return binSearch2($arr,$mid+1,$height,$k);  
                }elseif($arr[$mid]>$k){  
                    return binSearch2($arr,$low,$mid-1,$k);  
                }  
            }  
            return -1;  
        }  
          
        //顺序查找  
        function seqSearch($arr,$k){  
            foreach($arr as $key=>$val){  
                if($val==$k){  
                    return $key;  
                }  
            }  
            return -1;  
        }  
          
        $arr=array(1,2,3,4);  
        echo in_array(4,$arr).'<br/>';  
        echo binSearch($arr,4).'<br/>';  
        echo binSearch2($arr,0,4,4).'<br/>';  
        echo array_search(4,$arr).'<br/>'; 
        $arr=array(1,3,4,2);  
        echo in_array(4,$arr).'<br/>';  
        echo seqSearch($arr,4).'<br/>';  
        echo array_search(4,$arr);
    
  • 相关阅读:
    原生js可爱糖果数字时间特效
    jQuery绑定事件的四种方式
    jQuery选择器总结
    正则表达式
    this对象
    网页瀑布流效果实现的几种方式
    关于DOM
    SparkSQL读写外部数据源--数据分区
    SparkSQL读写外部数据源-通过jdbc读写mysql数据库
    SparkSQL读写外部数据源-基本操作load和save
  • 原文地址:https://www.cnblogs.com/life_lt/p/10910339.html
Copyright © 2020-2023  润新知