一、二分查找又叫折半查找,查找要求是:待查找的 序列是有序的。
二、算法说明:每次取中间位置的值与带查找关键字比较,如果中间位置的值比待查找关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比带查找关键字小,则在后半部分循环这个查找的过程,直到查找到为止,否则说明序列中没有待查找的关键字。
三、实现代码如下:
public static int biSearch(int []array, int a){
int lo=0;
int hi=array.length-1;
int mid;
while(lo<=hi){
mid=(lo+hi)/2;//获取中间位置
if(array[mid]==a){
return mid+1;
}else if(array[mid]<a){//向右查找
lo=mid+1;
}else{//向左查询
lo=mid-1;
}
}
return -1;
}