/**
* 二分查找算法
* 返回int
*
* 查找条件:
* 顺序存储,而且是从小到大排列好顺序
*/
public static int binarySearch(int[] arr ,int key){
int left = 0;
int right = arr.length-1;
int index = (left + right)/2;
int middle = arr[index];
while (key != middle){
if(key < middle){
right = index-1;
}else if(key > middle){
left = index+1;
}
index = (left + right)/2;
middle = arr[index];
//这判断 == 就可以了,因为不会出现left > right
if (left == right){
if(key != middle){
index = -1;
}
break;
}
}
return index;
}