3、二分查找算法的3种写法(算法基础—查找算法)
二分查找:
又叫折半查找,从有序列表的初始候选区li[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半。
第一种简单写法:
逻辑:通过取中间位置的值来对比,不断调整候选区的范围,匹配到则范围该直到如果最后匹配成功。 由于left和right的值一直跟随mid一同变化,所以最后得到的mid值,是真正的位置
def binary_search2(li, val):
'''假设输入的是个升序的列表,获取中间位置的值跟要查找的值val作对比,
如果比val大,则取中间位置左边部分继续二分查找'''
left = 0
right = len(li) - 1
while left <= right: # 使用left和right变量控制候选区的范围,并没有改变传进来的列表
mid = (left + right) // 2
共有 0 条评论