php 实现二分查找法

<?php

public function select_two_part($a,$n,$target){
    $l = 0;
    $r = $n-1;
    $mid = 0;
    while($l<=$r){
       $mid = round(l+r)/2;   
            //round(l+(r-l)/2);这个可以避免Int型越界,在强类型语言中会遇到  
       if($target = $arr[$mid])
         { return $mid; }
       if($target>$mid){
          $l = $mid+1; 
         }else{
          $r = $mid-1; 
         }
   }
   return -1;//没有找到返回-1
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注