python 2分法查找实例

直接上代码(内含注释)

 1 find_list = [2, 5, 7, 8, 12, 23, 27, 31, 33, 42, 44, 45, 47, 50]  # 要查找的列表
 2 find_value = 50  # 要查找的值
 3 start = 0  # 起始
 4 end = len(find_list) - 1  # 终止
 5 i = 0  # 循环次数
 6 while True:
 7     i = i+1
 8     mid = int((start + end) / 2)  # 中位的下标
 9     print(f"第{i}次循环,中位数是:{find_list[mid]}")  # 打印中位数和循环次数
10     if find_value < find_list[mid]:
11         end = mid - 1  # 查找值小于中位值,更新终止下标
12         continue
13     elif find_value > find_list[mid]:
14         start = mid + 1  # 查找值大于中位值,更新起始下标
15         continue
16     else:
17         print(f"{find_value}在num的索引是:{mid},历经了{i}次循环")
18         break

 执行结果如下:

 

posted @ 2022-08-23 15:07  平行时空的旅者  阅读(62)  评论(0编辑  收藏  举报