11、根据下述二分查找法,在排好序的数组1,3,6,9,17,31,39,52,61,79,81,90,96中查找数值82,和82比较的数组元素分别是( )。

别灰心,再试一次!

💡 真题解析

答案:C

解析:

· 第一次迭代:

left = 0, right = 12,数组范围是整个数组。

mid = (0 + 12) / 2 = 6,即中间元素是39。

nums[mid] = 39,小于目标值82,所以更新 left = mid + 1 = 7。

· 第二次迭代:

left = 7, right = 12,数组范围缩小到[52, 61, 79, 81, 90, 96]。

mid = (7 + 12) / 2 = 9,即中间元素是79。

nums[mid] = 79,小于目标值82,所以更新 left = mid + 1 = 10。

· 第三次迭代:

left = 10, right = 12,数组范围缩小到[81, 90, 96]。

mid = (10 + 12) / 2 = 11,即中间元素是90。

nums[mid] = 90,大于目标值82,所以更新 right = mid - 1 = 10。

· 第四次迭代:

left = 10, right = 10,即只剩下一个元素81。

mid = (10 + 10) / 2 = 10,即中间元素是81。

nums[mid] = 81,小于目标值82,所以更新 left = mid + 1 = 11。

根据上述分析,与目标值82进行比较的数组元素依次是:39, 79, 90, 81