实现二分搜索的递归与非递归程序
时间: 2023-12-29 12:50:26 浏览: 39
好的,关于实现二分搜索的递归与非递归程序,我可以向您解释一下。在这里,我将以 Python 代码为例:
递归实现:
```python
def binary_search_recursive(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binary_search_recursive(arr, low, mid - 1, x)
else:
return binary_search_recursive(arr, mid + 1, high, x)
else:
return -1
```
非递归实现:
```python
def binary_search_iterative(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (high + low) // 2
if arr[mid] < x:
low = mid + 1
elif arr[mid] > x:
high = mid - 1
else:
return mid
return -1
```
以上是实现二分搜索的递归与非递归程序的 Python 代码,希望对您有所帮助。