二分查找法
2018-05-22 本文已影响0人
刘志阳
意思: 取中间数比较排除法
实现要点:
1.必须要有序,无序的不适用
2.定义好序列的开头及结尾
start=0 end=len(list)-1
3.符合循环处理的条件:
end >= start
4.核心的算法:
mid = (start + end) / 2
guess = list[mid]
注意:py2和py3对 2/3的处理结果不同
py2 : 2/3=0 2/3.0=0.5
py3 : 2/3=0.5 2//3=0
5.分支逻辑判断:
a.if guess==xxxx return mid
b.if guess > xxxx end = mid -1 数大了
c.else start = mid + 1 数小了
时间复杂度:
O(log n) 对数时间
能用几种方法写出来:
1.while
2.for
3.递归