public function binarySearchSort(array $arr,$value) :int
{
$length = count($arr);
$left = 0;
$right = $length - 1;
while ($left <= $right){
// 取中间值下标
$middle = (int)(($left+$right)/2);
if($arr[$middle] > $value){ // 如果所取结果大于查找值,那么就排除右边$right,重新给$right赋值为中间下标-1
$right = $middle - 1;
}elseif ($arr[$middle] < $value){ //如果所取结果小于查找值,那么就排除左边$left,重新给$left赋值为中间下标+1
$left = $middle + 1;
}else{
return $middle; // 刚好在中间
}
}
return -1; // 不存在
}
�
