【发布时间】:2018-02-22 02:11:01
【问题描述】:
这是一个正好有 15 个元素的数组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
假设我们正在对一个元素进行二分搜索。通过检查数组中的两个或更少的数字来指示将找到的任何元素。
我得到了什么:因为我们正在进行二进制搜索,所以仅通过一次比较找到的数字将是第 7 个元素 = 7。对于两次比较,这会导致数组的第二次划分。也就是说,找到的数字可以是 3 或 11。
我是对还是错?
【问题讨论】:
-
听起来对我来说是正确的,可能需要添加一个假设,即在将偶数数组分成两半时,您使用的是两个可能数字中较小的一个。
-
是的,这会引导您进行两个比较,但有时数组不会被排序,您可能需要先排序。
-
鉴于问题描述中的数组,它实际上是
4 8 12。 -
arr[7] = 8,这可能会导致您的困惑。您说的是第 7 个元素,您可能是指7处的元素。