二分查找法

意思: 取中间数比较排除法

实现要点:

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.递归

你可能感兴趣的:(二分查找法)