zoukankan      html  css  js  c++  java
  • 二分查找


    算法解析:


        假设搜寻的数列已经排好序,应该尽量利用他们排好序的特性。以降低搜寻比对的次数。这是查找的基本原则,二分查找就是这个原则的代表。在二分查找中,从数列的中间開始查找,假设这个数小于我们所要查找的数,因为数列已排序,则该数左边的数一定小于要查找的数。假设要查找的数大于中间数。则从左边查找。


    算法实现:


    <?

    PHP function bin_sch($array,$low,$high,$k){ if($low<=$high){ $mid=intval(($low+$high)/2); if($array[$mid]==$k){ return $mid; }elseif($k<$array[$mid]){ return bin_sch($array,$low,$mid-1,$k); }else{ return bin_sch($array,$mid+1,$high,$k); } } return-1; }


    //非递归版本号

    function binsearch($key,$array){
     $count=count($array);
     $lower=0;
     $high=$count-1;
     while($lower<=$high){
       $middle=intval(($lower+$high)/2);
       if($array[$middle]>$key)
       $high=$middle-1;
       else if($array[$middle]<$key)
        $lower=$middle+1;
       else
        return  $middle;
      }
        return-1;
    }
    $array =  array(0,1,2,3,4,5,6,7,8,9);
    echo binsearch(5,$array);


  • 相关阅读:
    TF中的自定义正则项
    [工具]多线程下载 axel
    [算法]kv-memory 表示dense特征
    [code]tensorflow分桶
    [code]Keras API的用法记录
    vim显示下划线不高亮问题
    [代码] kv2sparse
    [代码]并发执行python的例子
    AI算法手册
    [工具]soundflower
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7401459.html
Copyright © 2011-2022 走看看