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
执行结果如下:
老铁,如果觉得本文对你有帮助,麻烦帮点个右下角的“推荐”,感谢!
本文来自博客园,作者:平行时空的旅者,转载请注明原文链接:https://www.cnblogs.com/yifengyu/p/16616253.html