面试题目:
在一个有序没有重复的数据中找到某一个数,如果能找则返回数组的下标,如果找不到则返回 -1;
public int findIndex(int [] nums,int index){
int low = 0;
int hight = nums.length;
int mid = -1;
while(low < hight){
mid = (low + hight)/2;
if(nums[mid] < index ){
low = mid+1;
}else if(nums[mid] > index){
hight = mid-1;
}else{
return mid;
}
}
return -1;
}
low 和 hight 的迭代过程中要注意边界范围。