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