二分法:首先需要一個由小到大排序好的數組,先找到其中間值,然后進行比較如果比較中間值大的話則向前找。如果比要找的小,則向后找。
?代碼實現:
//定義查詢方法 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;}