这个数组的二分查找需要多少次比较?

How many comparisons needed in binary search of this array?

我们有以下数组: [4, 13, 25, 33, 38, 41, 55, 71, 73, 84, 86, 92, 97] 对我来说,似乎只需要 3 次比较就可以找到 25 次,因为: 首先我们选择中间元素 55。现在我们进行两次比较:55 = 25? 55 > 25? None 个,因此我们转到数组的左侧。我们得到子数组:[4, 13, 25, 33, 38, 41] 我们再除此得到 25 = 25?是的.. 所以需要 3 次比较才能得到我们的比赛。我的书上说要找到 25 个需要进行四次比较。这是为什么?

由于左边数组的大小是偶数,所以每个算法都可以select中间的一个数。因此,比较可能类似于以下 4 比较:

[4, 13, 25, 33, 38, 41, 55, 71, 73, 84, 86, 92, 97]
25 < 55 =>‌ [4, 13, 25, 33, 38, 41]
25 < 33 => [4, 13, 25]
25 > 13 => [25]
25 == 25 => Found.