二分查找


算法解析:php


    假設搜尋的數列已經排好序,應該儘可能利用他們排好序的特性。以下降搜尋比對的次數。這是查找的基本原則,二分查找就是這個原則的表明。在二分查找中,從數列的中間開始查找,假設這個數小於咱們所要查找的數,由於數列已排序,則該數左邊的數必定小於要查找的數。假設要查找的數大於中間數。則從左邊查找。算法


算法實現:post


<?

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; }spa


//非遞歸版本號code

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);
相關文章
相關標籤/搜索