说到算法,大家应该都会脑壳疼吧。除了应付一下面试,准备过算法,也接触过不少算法,但是面试完了,基本上就忘光了。但不得不说,算法真的很重要,算法是解决问的方法,你可能会说根本用不上,那只是因为你根本没有算法的思维,又如何说得上使用呢。在这里,我会和大家一起重学算法,阅读《图解算法》入门算法经典书籍,然后根据个人知识进行整理与补充而编写的文章。今天讲的二分查找法,如果你对这个算法很熟请忽略或者复习一下也未尝不可。
二分查找法
先来看看最简单的查找算法,简单查找法,也可以说是美嘉算法(美嘉经常用到的算法)假设我在1~100的数字中查找56使用美嘉算法是这样的
二分查找算法python代码
def binary_search(list, item):
low = 0
high = len(list) - 1
while low <= high:
# //表示整除
mid = (low + high) // 2
guess = list[mid]
if guess == item:
return mid
elif guess > item:
high = mid - 1
else:
low = mid + 1
return None
ps:二分查找法只能用于有序列表
学会了没?学会可以自己动手,码一码,用什么都语言无所谓。参考:《算法图解》
文章首发于公众号【KEN DO EVERTHING】
本公众号专注于java相关技术,但不限于java、mysql、python、面试技巧、生活感悟等。分享优质博文,技术干货,学习资源等优质内容。
欢迎关注,一起学习,共成长!
网友评论