Python中如何应用二分查找算法进行笔记整理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1684个文字,预计阅读时间需要7分钟。
算法:解决最高效问题的方法 + 算法之二的分治法 + 需求:有一个按从小到大排序的数字列表 + 传统遍历方式 + nums=[-3, 4, 7, 10, 13, 21, 43, 77, 89] + for i in nums: if i==10: print(i) break
算法:最高效解决问题的办法
算法之二分法
需求:有一个按照从小到大顺序排列的数字列表
传统遍历方式
nums = [-3,4,7,10,13,21,43,77,89]for i in nums:
if i == 10:
print(i)
break
print(i)
打印:
-3
4
7
10
# 找到10的时候才结束,这就是遍历,从左到右查询,这种效率是非常底的,万一我想要查找的值不是10,而是上万呢?难道还要遍历列表一个一个找?这不现实。
二分法算法方式
#<==可以使用sort()先进行一个升序
二分法的原理就是先获取到列表中间的值,对比需要查找的值。
如果查找的值比中间值大了,则从中间值开始到左边的值全部切成新列表重新计算。
如果查找的指比中间值小了,则从中间值开始到右边的值全部切成新列表重新计算。
最后计算结果查找的值既不大于中间值也不小于中间值的时候,则证明找到了需要的值。
本文共计1684个文字,预计阅读时间需要7分钟。
算法:解决最高效问题的方法 + 算法之二的分治法 + 需求:有一个按从小到大排序的数字列表 + 传统遍历方式 + nums=[-3, 4, 7, 10, 13, 21, 43, 77, 89] + for i in nums: if i==10: print(i) break
算法:最高效解决问题的办法
算法之二分法
需求:有一个按照从小到大顺序排列的数字列表
传统遍历方式
nums = [-3,4,7,10,13,21,43,77,89]for i in nums:
if i == 10:
print(i)
break
print(i)
打印:
-3
4
7
10
# 找到10的时候才结束,这就是遍历,从左到右查询,这种效率是非常底的,万一我想要查找的值不是10,而是上万呢?难道还要遍历列表一个一个找?这不现实。
二分法算法方式
#<==可以使用sort()先进行一个升序
二分法的原理就是先获取到列表中间的值,对比需要查找的值。
如果查找的值比中间值大了,则从中间值开始到左边的值全部切成新列表重新计算。
如果查找的指比中间值小了,则从中间值开始到右边的值全部切成新列表重新计算。
最后计算结果查找的值既不大于中间值也不小于中间值的时候,则证明找到了需要的值。

