阅读量:0
PHP实现二分查找算法的步骤如下:
- 确定要查找的数组和目标值。
- 定义一个函数,传入查找的数组、目标值以及数组的起始位置和结束位置作为参数。
- 在函数内部,计算数组的中间位置,并将中间位置的值与目标值进行比较。
- 如果中间位置的值等于目标值,则直接返回中间位置的索引。
- 如果中间位置的值大于目标值,则在左半部分继续查找。
- 如果中间位置的值小于目标值,则在右半部分继续查找。
- 递归地调用函数,直到找到目标值或者左边界大于右边界为止。
- 如果找到目标值,则返回目标值所在的索引;否则返回-1,表示目标值不存在于数组中。
以下是一个实现二分查找算法的PHP代码示例:
function binarySearch($arr, $target, $left, $right) { if ($right >= $left) { $mid = $left + floor(($right - $left) / 2); if ($arr[$mid] == $target) { return $mid; } if ($arr[$mid] > $target) { return binarySearch($arr, $target, $left, $mid - 1); } return binarySearch($arr, $target, $mid + 1, $right); } return -1; } $arr = [1, 3, 5, 7, 9, 11, 13, 15]; $target = 7; $index = binarySearch($arr, $target, 0, count($arr) - 1); if ($index != -1) { echo "目标值在数组中的索引为: " . $index; } else { echo "目标值不在数组中"; }
在以上代码中,我们首先定义了一个binarySearch
函数来实现二分查找算法。然后我们定义了一个有序数组$arr
和目标值$target
,并调用binarySearch
函数来查找目标值在数组中的索引。如果找到目标值,则输出目标值在数组中的索引;否则输出目标值不在数组中。