fxs_2008注:以下测试通过。
//要查找的数组
$array = array(1,2,3,4,5,6,7,8,9,13,14,15,16,19,25,34,50,101);
$searchValue = 13;
$n = tuo($array,$searchValue);
echo $n===false? 'no' : "$n : {$array[$n]}";
function tuo($array, $searchValue) {
list($start, $end) = array(0, count($array));
while($end-$start > 0) {
$mid = floor(($end+$start)/2);
if($array[$mid] == $searchValue) {
return $mid;
}
if($array[$mid] >$searchValue){
list($start, $end) = array($start, $mid);
}else{
list($start, $end) = array($mid, $end);
}
echo $mid.'|'.$start.':'.$end.'<br />';
}
if($array[$mid] == $searchValue) return $mid;
return false;
}
本文永久链接: http://www.zzxj.net/blog/fxs_2008/archive/2010/06/23/167.html
发表于 @ 2010年06月23日 |评论(loading... )|收藏