$arr = [1, 4, 6, 8, 23, 43, 57]; //数组必须是有序的
$count = count($arr);
function middle($arr, $find)
{
$len = count($arr);
if ($len == 1) {
return $arr[0] == $find ? 0 : -1;
}
$low = 0;
$high = $len - 1;
while ($low <= $high) {
$mid = $low + (($high - $low) >> 1);
if ($arr[$mid] == $find) {
return $mid;
} else {
if ($arr[$mid] > $find) {
$high = $mid - 1;
} else {
$low = $mid + 1;
}
}
return -1;
}
var_dump(middle($arr, 23)); //4
die;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。