二分查找(Binary Search)是一种高效的查找算法,适用于已排序的列表。它通过反复将目标值与列表的中间元素进行比较,并根据比较结果缩小查找范围,直到找到目标元素或确定其不存在为止。
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid # 找到目标元素,返回索引
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1 # 未找到目标元素,返回-1
# 测试示例(假定列表已排序)
arr = [1, 3, 5, 7, 9, 11, 13, 15]
target = 7
result = binary_search(arr, target)
if result != -1:
print(f"目标元素 {target} 在列表中的索引为 {result}")
else:
print(f"目标元素 {target} 未在列表中找到")