二进制搜索(binary search,又称二分搜索)是一种快速有效的搜索方法,用于搜索有序列表中的元素。
import math
def binary_search(sorted_list, target):
"""
在有序列表sorted_list中查找目标值target的位置
使用二分查找算法
"""
lower_bound = 0 # 初始化下边界
upper_bound = len(sorted_list) # 初始化上边界
guess_index = math.floor(len(sorted_list) / 2) # 初始化猜测位置
# 当猜测值与目标值之间的差值大于0.0001时继续查找
while abs(sorted_list[guess_index] - target) > 0.0001:
if sorted_list[guess_index] > target:
upper_bound = guess_index # 调整上边界
elif sorted_list[guess_index] < target:
lower_bound = guess_index # 调整下边界
# 更新猜测位置
guess_index = math.floor((lower_bound + upper_bound) / 2)
return guess_index
if __name__ == '__main__':
sortedlist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
index = binary_search(sortedlist, 10)
print(f"数字10位于sorted_list的位置{index}")
数字10位于sorted_list的位置9
标签:二分,index,guess,target,Python,list,bound,二进制,sorted From: https://blog.csdn.net/weixin_74254879/article/details/140732516