在前面几篇二分查找中 我们确定的j的下标包含数组元素
在这篇博客中,我们通过改进版进行新的二分查找。
我们先来看代码
public static int binarysearchbasic3(int [] a,int target){
int i=0,j=a.length;//i还是起始元素,j为范围分界线(不包括元素)
while (i<j){//j不包括元素 所以不取等号
int m=(i+j)>>>1;
if(a[m]<target){
i=m+1;
}else if(target<a[m]){
j=m;//令j为范围分界线
}else {
return m;
}
}
return -1;
}
即通过改变了j的位置,进行二分查找