<?php
function find_break_point($arr, $low, $high)
{
$mid = intval(($low+$high)/2);
if($arr[$mid]==$arr[$low]){
return $arr[$mid];
}
else if ($arr[$mid]<$arr[$low]){
if(!empty($arr[$mid-1]) && $arr[$mid-1]>$high){
return $arr[$mid];
}
else if(empty($arr[$mid-1])){
return $arr[$mid];
}
return find_break_point($arr, $low, $mid);
}
return find_break_point($arr, $mid, $high);
}
$arr = [14, 27, 39]; // 39
// $arr = [14, 27, 39, 2]; // 2
// $arr = [14, 27, 39, 2, 3]; // 2
// $arr = [14, 27, 39, 2, 3, 9, 10]; // 2
echo find_break_point($arr, 0, count($arr));
echo PHP_EOL;
将一个顺序数组截成两块并交换位置,获取两块的断点(PHP实现)
最新推荐文章于 2022-09-05 17:49:57 发布