5

这是一个正好有 15 个元素的数组:

1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

假设我们正在对一个元素进行二分搜索。指示将通过检查数组中的两个或更少数字来找到的任何元素。

我所拥有的:因为我们正在进行二进制搜索,所以仅通过一次比较找到的数字将是第 7 个元素 = 7。对于两次比较,这会导致数组的第二次划分。也就是说,找到的数字可以是 3 或 11。

我是对还是错?

4

2 回答 2

2

你几乎是对的,第一个数字不是七而是八。

其他 2 将是 4 和 12。

正确答案是 4, 8, 12

于 2013-07-29T16:32:00.250 回答
0

`我发现答案是 8,即第 7 个元素,找到的其他元素是排序数组的第 3.5 个和第 10.5 个元素。因此,接下来研究的两个数字是 4 和 11。

关于我如何得到答案的解释。
给定数组是 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

head=1
tail=15
middle= 0+14/2=7th element **0 is the index value of 1 and 14 is of 15**    
middle value turns to be 8 as it is the 7th element.

solving value for first half
head=1
tail=8
middle= 0+7/2=3.5 or 3rd element **0 is the index value of 1 and 7 is of 8**

middle value now turns to be 4 as it is the 3rd element.

solving value for second half
head=8
tail=15
middle= 7+14/2=10.5 or 10th element  **7 is the index value of 8 and 14 is 
of 15**

middle value now turns to be 11 as it is the 10th element of the array`

块引用

于 2018-02-21T16:58:55.820 回答