def dichotomy_seek(li, itme):
n = len(li)
# 确定搜索范围
start = 0
end = n - 1
# 开始循环
while start <= end:
middle_pk = (start + end) // 2
if li[middle_pk] == itme:
return True
elif li[middle_pk] > itme:
end = middle_pk - 1 # 重新定义开始搜索范围
else:
start = middle_pk + 1 # 重新定义结束搜索范围
return False
if __name__ == "__main__":
li = [1, 2, 3, 4, 6, 7, 8, 9]
print(dichotomy_seek(li, 1))
print(dichotomy_seek(li, 5))
print(dichotomy_seek(li, 9))
python 二分法循环搜索
最新推荐文章于 2022-03-13 19:48:49 发布