算法图解|简单查找和二分查找算法

简单查找算法:

从头开始查找,待查找数字排在第多少位,则查找比较多少次

随便想一个1~100的数字。

每次可以猜一个数字,反馈是这个数字大了,小了,还是对了。

假设从1开始依次往上猜,猜测过程会是上面简单查找那样这样。

算法代码如下:

结果如下图:

这也是说到的简单查找,从前往后依次查找。

二分查找:

从50开始猜,每次从中间开始猜,排除一半的可能。

接下来猜75试一试~

这样,每次排除一半的结果,不论最初是什么数字,最多7步就可以猜到正确结果。

如何计算得到这个7步的呢?

每次排除一半的可能,2^n = N,所以计算得到步数n为:

算法代码如下:

原文发布于微信公众号 - AI深度学习求索(AIDeepLearningQ)

原文发表时间:2018-11-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习那些事儿

探讨pytorch中nn.Module与nn.autograd.Function的backward()函数

本文讲解基于pytorch0.4.0版本,如不清楚版本信息请看这里。backward()在pytorch中是一个经常出现的函数,我们一般会在更新loss的时候使...

2K50
来自专栏李蔚蓬的专栏

第10-11周Python学习周记

3.时间允许的话,尽可能了解一些身为程序员必要掌握的知识(例如json,参考于网络资源)。

14210
来自专栏数据小魔方

替换与转置函数

今天要跟大家分享两个经常会用到的函数——替换与转置函数! ▽▼▽ excel中的替换函数有两个:substitute/replace 转置函数:TRANSPOS...

30960
来自专栏Python小屋

Python生成强密码字典文件

本文要点在于演示如何使用正则表达式验证密码强度,以及如何生成大量字符的排列。由于下面代码生成的字典过于庞大,所以并没有很直接的应用场景,可对生成的强密码再次进行...

40570
来自专栏机器学习养成记

【实用派】R语言中的便捷小操作

管道处理 管道处理避免了中间变量的生成,从而节省了内存,并且使代码直观易读,很大程度的简化代码。 R语言中,管道运算符为“dplyr”包中的“%>%”,指左边的...

32570
来自专栏AI研习社

将 Tensorflow 图序列化以及反序列化的巧妙方法

将类中的字段和 graph 中的 tensorflow 变量进行自动绑定,并且在不需要手动将变量从 graph 中取出的情况下进行重存,听起来有没有很炫酷?

16740
来自专栏令仔很忙

UML之类图

   在UML中,类图是用来描述类、接口、协作以及他们之间关系的图,用来显示系统中各个类的静态结构,类图是定义其他图的基础。

15320
来自专栏深度学习那些事儿

探讨pytorch中nn.Module与nn.autograd.Function的backward()函数

本文讲解基于pytorch0.4.0版本,如不清楚版本信息请看这里。backward()在pytorch中是一个经常出现的函数,我们一般会在更新loss的时候使...

30040
来自专栏AI派

TensorFlow修炼之道(3)——计算图和会话(Graph&Session)

在计算图中,节点表示计算单位,边表示计算用到和产生的数据。 例如,在TensorFlow图中,tf.matmul操作将对应于具有两个输入边(要乘以的矩阵)和一个...

37740
来自专栏技术博文

php pathinfo()的用法

pathinfo — 返回文件路径的信息  mixed pathinfo ( string $path [, int $options = PATHINFO_D...

41770

扫码关注云+社区

领取腾讯云代金券