二分查找法

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

上一篇下一篇

猜你喜欢

热点阅读