二分查找是为了找到元素在一个数组的位置
基本写法如下:
public int halfSeach_2(int[] arr,int key){
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (max+min)>>1; //等同于(max+min)/2;
while(arr[mid]!=key){
if(key>arr[mid]){
min = mid + 1;
}
else if(key<arr[mid]){
max = mid - 1;
}
//元素不存在于数组中
if(max<min)
return -1;
mid = (max+min)>>1;
}
return mid;
}
二分查找的优点:效率快
缺点:二分查找只适用顺序存储结构