php二分查找怎样实现

avatar
作者
筋斗云
阅读量:0

在PHP中实现二分查找,首先确保数组已经排序。然后使用以下代码实现二分查找:

function binarySearch($arr, $target) {     $left = 0;     $right = count($arr) - 1;      while ($left <= $right) {         $mid = (int)(($left + $right) / 2);         $midVal = $arr[$mid];          if ($midVal == $target) {             return $mid; // 目标值找到,返回索引         } elseif ($midVal < $target) {             $left = $mid + 1; // 目标值在右侧子数组         } else {             $right = $mid - 1; // 目标值在左侧子数组         }     }      return -1; // 目标值不存在于数组中,返回-1 } 

以下是如何使用这个函数的示例:

// 示例数组(已排序) $arr = [1, 3, 5, 7, 9, 11, 13, 15];  // 要查找的目标值 $target = 7;  // 调用二分查找函数 $result = binarySearch($arr, $target);  // 输出结果 if ($result != -1) {     echo "目标值 " . $target . " 在数组中的索引为 " . $result; } else {     echo "目标值 " . $target . " 不在数组中"; } 

注意:这个实现假定输入数组已经排序。如果输入数组未排序,需要先对数组进行排序(如使用sort()函数)。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!