1. 二分查找法 -> 必须处理有序的列表 -> 每次取一半去进行查找,并且是从上一次再取一半进行查找

# 通过二分查找法找到对数值的下标 -> 通过下标去判断
def find(l, aim, start=0, end=None):
end = len(l) if end is None else end
mid_index = (end - start) // 2 + start # 获取中间数
if start <= end:
if l[mid_index] < aim:
return find(l, aim, start=mid_index + 1, end=end) # 如果中间数 小于 目标数,那么就以该中间数为起始值判断右边的数值
elif l[mid_index] > aim:
return find(l, aim, start=start, end=mid_index - 1) # 如果中间数 大于 目标数,那么就以该中间数为结束值判断左边的数值
else:
return mid_index
else:
return '找不到这个值'
ret = find(l, 44)
← 生成器 线程 - Timer 定时器 →