具有多个中点混淆的二进制搜索

时间:2018-03-05 19:10:39

标签: algorithm binary-search

我正在审核我的期中考试,这个具体问题给我带来了一些问题。

这是执行二进制搜索的以下数组:

enter image description here

我要搜索的值是150。

首先,我取第一个元素为0,最后一个元素为15。

(开始+结束)/ 2,

(0 + 15)/ 2 = 7

数组7的值为90.

90< 150,所以该值包含在数组的右侧。

阵列现在看起来像这样:

enter image description here

继续使用相同的逻辑

(开始+结束)/ 2

(8 + 15)/ 2 = 11.

然而,据教授说,我应该在这里的价值12。我不确定我做错了什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

甚至在计算机发明之前就已经编写了算法。 计算机只是一种工具或设备,它以高效的方式实现算法,这就是它快速的原因。

您在此处执行的二进制搜索与计算机相关,因为数组从0开始索引(计算通常从计算机中的0开始计算),这就是为什么您从计算机获得11这是正确的。

但是对于人类计数从1开始,所以根据教授的结果是12。 在编写算法的同时,我们根据人类的感知编写算法,然后我们将其扭曲一点,以便在我们的机器中实现。