用Python实现二分查找
时间: 2023-07-18 17:12:28 浏览: 93
python 实现 二分查找
好的,以下是用 Python 实现二分查找的代码:
```
def binary_search(arr, x):
low = 0
high = len(arr) - 1
mid = 0
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
```
这个函数接收两个参数:一个有序数组 `arr` 和要查找的元素 `x`。它返回元素 `x` 在数组中的索引,如果没有找到则返回 -1。
在函数中,我们首先初始化 `low` 为数组第一个元素的索引,`high` 为数组最后一个元素的索引。然后,我们在循环中计算出中间元素的索引 `mid`,并将其与要查找的元素 `x` 比较。
如果 `arr[mid]` 小于 `x`,则说明要查找的元素在 `mid` 的右侧,因此我们将 `low` 更新为 `mid + 1`,并继续查找。如果 `arr[mid]` 大于 `x`,则说明要查找的元素在 `mid` 的左侧,因此我们将 `high` 更新为 `mid - 1`,并继续查找。
如果 `arr[mid]` 等于 `x`,则说明我们已经找到了要查找的元素,因此我们返回 `mid`。
如果循环结束后仍然没有找到要查找的元素,我们返回 -1。
阅读全文