测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A60989. 若数组 a 已按升序排列,则下面代码可以正确实现 “在 a 中查找第一个大于等于 x 的元素的位置”。1 def lowerBound(a, x)

判断题

题目描述

若数组 a 已按升序排列,则下面代码可以正确实现 a 中查找第一个大于等于 x 的元素的位置

1 def lowerBound(a, x):
2  l = 0
3  r = len(a)
4  while l < r:
5   mid = (l + r) // 2
6   if a[mid] >= x:
7    r = mid
8   else:
9    l = mid + 1
10  return l
11
12 if __name__ == "__main__":
13  a1 = [1, 3, 5, 7, 9]
14  x1 = 5
15  print(f"数组{a1}中第一个≥{x1}的位置:{lowerBound(a1, x1)}")
16
17  x2 = 6
18  print(f"数组{a1}中第一个≥{x2}的位置:{lowerBound(a1, x2)}")
19
20  x3 = 10
21  print(f"数组{a1}中第一个≥{x3}的位置:{lowerBound(a1, x3)}")
22
23  x4 = 0
24  print(f"数组{a1}中第一个≥{x4}的位置:{lowerBound(a1, x4)}")

选项(单选)