1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?php
// 二分查找
function binarySearch(&$arr,$low,$top,$target){
if($low<=$top){
$mid = floor(($low+$top)/2);
if($arr[$mid]==$target){
return $mid;
}elseif($arr[$mid]<$target){
return binarySearch($arr,$mid+1,$top,$target);
}else{
return binarySearch($arr,$low,$mid-1,$target);
}
}else{
return -1;
}
}
$arr = array(1,3,9,23,54);
echo binarySearch($arr, 0, sizeof($arr), 9);
|