使用Python语言实现上面的算法
时间: 2024-04-17 09:07:16 浏览: 65
基于Python算法实现
以下是使用Python语言实现上面算法的代码:
```python
def binary_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 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`设置为`low`和`high`中间的元素的下标。如果`arr[mid]`小于`x`,说明要查找的元素在`mid`的右侧,将`low`设置为`mid+1`;如果`arr[mid]`大于`x`,说明要查找的元素在`mid`的左侧,将`high`设置为`mid-1`;否则,`arr[mid]`等于`x`,找到了目标元素,返回`mid`。
如果循环结束仍然没有找到目标元素,说明目标元素不在数组中,返回-1。
下面是一个例子:
```python
arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search(arr, x)
if result != -1:
print("元素在数组中的下标为", result)
else:
print("元素不在数组中")
```
输出:
```
元素在数组中的下标为 3
```
阅读全文