二分查找算法如下(非递归):
public int binarySearch(int[] nums, int tartget){
if(nums.length == 0){
return -1;
}
int left = 0;
int right = nums.length - 1;
int idx = -1;
while(true){
if(left > right){
break;
}
int center = (left + right) / 2;
if(nums[center] == tartget) return center;
if(nums[center] > tartget){
right = center - 1;
continue;
}
if(nums[center] < tartget){
left = center + 1;
continue;
}
}
return idx;
}