用python编写代码 二分查找
时间: 2024-07-11 18:01:12 浏览: 52
二分查找(Binary Search)通常用于已排序的列表中。这里有一个基于Python递归函数实现的简单二分查找算法[^1]:
```python
def binary_search(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
# 如果元素存在于中间位置
if arr[mid] == x:
return mid
# 如果元素大于中间元素,则在右半部分搜索
elif arr[mid] > x:
return binary_search(arr, low, mid - 1, x)
# 否则,在左半部分搜索
else:
return binary_search(arr, mid + 1, high, x)
else:
# 元素不存在于列表中
return -1
# 示例:
arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search(arr, 0, len(arr)-1, x)
if result != -1:
print(f"Element is present at index {result}")
else:
print("Element is not present in array")
```
如果你想要使用`index`方法来查找,这是直接的方法[^2]:
```python
def find_index(lst, target):
try:
return lst.index(target)
except ValueError:
return "Element not found"
arr = [2, 3, 4, 10, 40]
x = 10
print(find_index(arr, x)) # 输出:3
```