找到小于键值的最大值
int binSearch(int l,int r,int key){
int tl=l-1;
int tr=r+1;
while(tr-tl>1){
int mid=(tl+tr)/2;
if(a[mid]>=k)
tr=mid;
else
tl=mid;
}
return tl;
}
两个关键点:1. 等号落在左边还是右边。2. tl∈[tl,tr),tr∈(tl,tr] 所以为了tl或tr能取到边界值,开始对tl,tr相应减(加)一。
本文介绍了一种改进的二分查找算法实现方法,用于找到小于指定键值的最大元素。通过对搜索区间的调整,确保了边界值能够被正确地处理。
1867

被折叠的 条评论
为什么被折叠?



