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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下