定义 : 二分法查找针对的是一个有序的数据集合,每次通过与区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0
示例代码 :
<?phpfunction bind_search($arr,$key){$high=count($arr); // 最大值为数组的最后一个元素if($high<=0){ // 数组中没有东西的时候不执行return 0;}$low=0;while ($low<=$high){// 找到中间值$mid=intval(($low+$high)/2);if($arr[$mid]==$key){return $mid; // 目标数等于中间数 返回目标数所在的位置}elseif($arr[$mid]>$key){ // 目标数小于中间数 在前半区$high=$mid-1;}else{ // 目标数大于中间数 在后半区$low=$mid+1;}}return 0; // 查找失败}$arr=[1,3,14,66,79,101,223,554,789,1008];echo bind_search($arr,79);
