编写函数,用二分法在有序工号列表中查找元素,找到则返回下标,找不到则返回-1
时间: 2024-05-14 07:13:02 浏览: 112
好的,这是一个关于查找的问题,我可以为您解答。
我们可以使用二分查找法进行查找,该方法将列表一分为二,判断中间元素与目标元素的大小关系,继续在相应的一半中查找,直到找到目标元素或者查找完整个列表。
以下是一个使用二分查找法在有序工号列表中查找元素的函数的示例代码:
```python
def binary_search(arr, target):
"""
使用二分查找法在有序列表中查找元素
:param arr: 有序列表
:param target: 目标元素
:return: 若找到,返回目标元素的下标;否则,返回-1
"""
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
您可以将要查找的元素和工号列表传递给该函数,它将返回目标元素的下标或者-1,如下所示:
```python
# 示例用法
lst = [1, 2, 5, 7, 9, 10, 15, 20]
target = 7
index = binary_search(lst, target)
print(index) # 输出:3
```
希望这个示例对您有所帮助,如果您还有其他问题,可以随时问我。
阅读全文