二分查找算法

时间:2021-02-16 04:08:36
public static int rank(int key,int[] a){
int low=0;//数组下限的下标
int height=a.length-1;//数组上限的下标
int mid;
//先将数组进行排序
Arrays.sort(a);
while(low<=height){
mid=(low+height)/2;
if(key<a[mid]){
//当键值小于中间值时,把中间值-1的值赋给最大坐标
height=mid-1;
}else if(key>a[mid]){
//当键值大于中间值时,把中间值+1的值赋给最小坐标
low=mid+1;
}else{
return mid;
}
//当查找不到时,返回-1
return -1;
}
}