好的!来了来了~ 主要还是复习一下排序算法,作为算法的基础,我认为算法就可以从十大排序算法复习开始,算法图解,一集一沉淀!
导语:算法之路–二分查找
作者:变优秀的小白,Click 进入主页
爱好:Americano More Ice !
QQ群(new): 811792998
算法图解(一) 数组与链表
大家是否还记得对数呢?你很可能不记得什么是对数了,但你大几率记得什么是幂。 对数运算 = 幂运算的逆运算
图解:
以python作为算法语言编写
# 定义要查找的数组范围,一头一尾 low = 0 high = len(list) - 1 # 每次检查下中间的元素 # mid为中间值,若mid不为偶数向下取整 mid = (low + high) // 2 guess = list[mid] # 若guess猜的数字小了,修改low low = mid + 1当然,若guess猜的数字打了,就修改high
既然已经编写好了二分查找的代码,那怎么才能保证它是准确无误的呢?🙃 这个时候就需要测试代码!让我们编写个测试用例(TestCase)吧~
以下为测试代码:
my_list = [1, 3, 6, 7, 10, 11] # 查找个存在的数的位置,数组索引从0开始! print(binary_search(my_list, 3)) # 查找个不存在的数 print(binary_search(my_list, 0))有兴趣可以做做哦~
假设有一个包含128个名字的有序列表,使用二分查找在其中查找一个名字,最多需要几步可以找到呢?上面列表乘于128后,最多需要多少步呢?算法图解(三) 大O表示法 - 明日更!!