python 编写程序,利用列表实现二分查找
时间: 2024-10-26 07:16:28 浏览: 35
二分查找+python代码案例
Python 中,二分查找通常用于已排序的列表中快速找到某个元素。由于列表是动态数组,这种算法并不能直接应用,因为二分查找需要对有序数组进行操作。但在 Python 的内置数据结构 `sorted()` 或者通过实现 `bisect` 模块可以实现类似的功能。
下面是一个简单的例子,假设我们有一个预排序的整数列表,我们可以使用 `bisect_left` 函数来进行二分查找:
```python
import bisect
def binary_search(lst, target):
# 使用 bisect_left 函数找到目标值应该插入的位置,如果值存在则返回索引,不存在则返回大于等于 target 的第一个值的索引
index = bisect.bisect_left(lst, target)
# 如果目标值在列表内,则返回其索引;不在则返回插入位置
if index != len(lst) and lst[index] == target:
return index
else:
return -1 # 表示未找到
# 示例
lst = [1, 3, 4, 5, 6, 7, 9]
target = 5
result = binary_search(lst, target)
if result != -1:
print(f"元素 {target} 在列表中的索引是 {result}")
else:
print(f"{target} 不在列表中")
阅读全文