码迷,mamicode.com
首页 > 其他好文 > 详细

二分查找

时间:2015-08-13 10:03:01      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:二分查找   php   


算法解析:


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


算法实现:


<?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);


版权声明:本文为博主原创文章,未经博主允许不得转载。

二分查找

标签:二分查找   php   

原文地址:http://blog.csdn.net/u012675743/article/details/47605121

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!