/**
* 二分查找算法
* 返回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;
}