✏️ 纠错
第 237 题 / 共 251 题
11、下面代码尝试在有序数组中查找第一个大于等于x的元素位置。如果没有大于等于x的元素,返回arr.size()。以下说法正确的是( )。
📝 题目解析

【答案】A

【考纲知识点】二分查找

【解析】该代码实现的是典型的二分查找中“lower_bound”功能:
在有序数组中查找第一个大于等于x的位置;若不存在,则返回arr.size()。
循环条件使用l < r,将区间[l, r) 不断缩小;mid计算方式可避免整数溢出;
当arr[mid] >= x 时收缩右边界,否则收缩左边界。结束时l正好为目标位置。
因此逻辑正确,选项A正确。