LukeSu @ 2022-04-02 19:58:41
最后查找完后,那么求录取分数线数组中的第l-1个元素和录取分数线数组中的第l个元素他们两与那位同学的估分的绝对值,那么答案就累加两个绝对值中最小的。
为什么求的是第 l 和 l-1 个元素与其绝对值之差呢?为什么不求第 l + 1个元素呢?没准第l + 1个元素与其绝对值之差更小?
by Mandel520 @ 2022-04-02 20:41:37
因为二分查找的是大于估分的最小值:
if(a[mid]<=b[i])//如果录取分数线数组中的第mid个元素小于或等于那位同学的分数
{
l=mid+1;//左边界就往右移
}
因此 a[l]
是大于估分的最小值, a[l-1]
是小于等于估分的最大值
(1) 如果 a[l-1]
等于估分, 则答案是 a[l-1]
(2)如果 a[l-1]
小于估分, 则答案是 a[l-1]
和 a[l]
中的一个
不管是那种情况, 都和 a[1+1]
没有关系