二分法:首先需要一个由小到大排序好的数组,先找到其中间值,然后进行比较如果比较中间值大的话则向前找。如果比要找的小,则向后找。
代码实现:
//定义查询方法 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;}}//找不到就直接返回-1return -1;}