二分法:首先需要一个由小到大排序好的数组,先找到其中间值,然后进行比较如果比较中间值大的话则向前找。如果比要找的小,则向后找。
代码实现:
//定义查询方法
public static int searchTarget(int[] nums, int target){
//首先定义数组索引开头和结尾
int start=0,end=nums.length-1;
while (start<=end){//定义循环范围
//定义中间值
int middle=(start+end)/2;//这里最好用位运算,为了简单就直接/2
//判断三种情况
if (target>nums[middle]){
//目标值大于中间值 右移
start=middle+1;
} else if (target<nums[middle]) {
//目标值小于中间值 左移
end=middle-1;
}else {
//目标值等于中间值 说明找到了,直接返回
return middle;
}
}
//找不到就直接返回-1
return -1;
}