想要运用二分查找首先得保证所需查找的数组是有序的,二分查找是折半查找,首先确定出所需查找数组的头尾下标min,max,根据下表算出中位数下标mid,将所查找的目标值与中位数进行比较,若中位数小于目标值,则将头下标变为mid+1,若中位数大于目标值,则尾下标变为mid-1,然后进入下一轮循环,计算出新的中位数下标mid,直至找到target。
public int search(int[] nums, int target) {
if(target<nums[0]||target>nums[nums.length-1]){
return -1;
}
int left=0,right=nums.length-1;
while(left<=right){
int mid=left+(right-left)/2;
if(nums[mid]==target){
return mid;
}else if(nums[mid]>target){
right=mid-1;
}else if(nums[mid]<target){
left=mid+1;
}
}
return -1;
}