二分查找法

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

实现要点:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 做一个合格的程序员总是绕不过算法这道坎,不管算法在实际运用如何,但总是一个程序员进步的必经之路,根据 《算法》逐一...
    Gaooof阅读 4,172评论 1 0
  • Hello,大家好,今天给大家继续讲解排序系列。可能有细心的"鸟友"会问,你不是讲解排序吗?怎么今天的主题是...
    Leon_Geo阅读 2,256评论 0 1
  • 起因 先说说事情的起因,最近在分析数据时经常遇到一种场景,代码需要频繁的读某一张数据库的表,比如根据地区ID获取地...
    Dorm_Script阅读 7,202评论 6 51
  • 昨晚看完,今天又看。好文。说不出话来,所以,还是摘录吧。 1、没有方向时,你觉得都是方向。来回探索,大量时间被消耗...
    木桶007阅读 1,098评论 0 0
  • 第一次的光荣时刻的选择 :我匆忙的跑到教室,我觉得教室里面已经有50%的人啦,可是没想到居然只有几个人...
    辛锦洲阅读 2,967评论 0 2