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

A21079. 若数组 a 已按升序排列,则下面代码可以正确实现“在a 中查找第一个大于等于x 的元素的位置”。( )def lowerBound(a, x): l = 0 r = len(a) while l < r: mid = (l + r) // 2 if a[mid] >= x: r = mid else: l = mid + 1 return l if __name__ == "__main__":…

判断题 困难

题目描述

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

def lowerBound(a, x):
    l = 0
    r = len(a)
    while l < r:
        mid = (l + r) // 2
        if a[mid] >= x:
            r = mid
        else:
            l = mid + 1
    return l


if __name__ == "__main__":
    a1 = [1, 3, 5, 7, 9]
    x1 = 5
    print(f"数组{a1}中第一个≥{x1}的位置: {lowerBound(a1, x1)}")

    x2 = 6
    print(f"数组{a1}中第一个≥{x2}的位置: {lowerBound(a1, x2)}")

    x3 = 10
    print(f"数组{a1}中第一个≥{x3}的位置: {lowerBound(a1, x3)}")

    x4 = 0
    print(f"数组{a1}中第一个≥{x4}的位置: {lowerBound(a1, x4)}")

选项(单选)

上一题 下一题