二分法查找
$array = range(1,100);
$search = 99;
$end = count($array);
$start = 0;
$i = 1;
while(true) {
$number = floor(($end + $start)/2);
echo '第' .$i++ .'次'. $number.',值'.$array[$number].';';
if($array[$number] == $search) {
echo '查到:'. $number . ',用了' . $i.'次';
break;
}
// 取左边
if($array[$number] > $search) {
$end = $number;
echo '左边【'.$start . ',' .$end . '】';
}
// 取右边
if($array[$number] < $search) {
$start = $number;
echo '右边【'.$start.','.$end.'】';
}
echo '</br>';
}