/**
* 二分查找算法
* @param a
* 参数数组a[]
* @param target
* 待查找的目标值
* @return
* -1:表示没有找到;否则,返回其索引下标
*/
public int halfSearch(int[] a,int target){
//当前正在参与比较的数组元素的索引
int index = 0;
//查找的起始下标
int start = 0;
//查找的结束下标
int end = a.length-1;
while(true){
//初始化数组中间值的下标
index = (start+end)/2;
//找到了该值
if(a[index]==target){
return index;
}else if(start>end){
return -1;
}else{
if(a[index]>target){
end = index-1;
}else{
start = index+1;
}
}
}
}