zoukankan      html  css  js  c++  java
  • 查找算法

    <?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);
    
  • 相关阅读:
    Ms.office2010安装教程
    Hadoop开发第3期---Hadoop的伪分布式安装
    Linux随笔---tar命令
    Hadoop开发第2期---虚拟机中搭建Linux
    appium(8)-locator strategies
    appium(7)-Automating mobile gestures
    appium(3)-Running Tests
    appium(4)-Automating mobile web apps
    appium(5)-Appium capabilities
    appium(2)-Setting up Appium
  • 原文地址:https://www.cnblogs.com/life_lt/p/10910339.html
Copyright © 2011-2022 走看看