在二分法查找中,求中位数的一些坑(左中位数和右中位数)
使用二分法查找时,我们经常会通过求中位数,来判断与目标值的大小关系。
但是一定要注意!!!若在选择选择中位数时要进行取整迭代,就要选择合适的中位数求法,不能只简单的使用
mid=(left+right)>>>1;
,会导致出现死循环的情况。
常见的有取左中位数和右中位数两种方法,代码如下:
//左中位数求法
mid = left + (right - left + 1)>>>1;
//右中位数求法
mid = (left + right + 1) >>>1;