二分查找是在一个有序的数组中查找目标值target,需要将target和数组中间元素做比较:
1)如果target=mid,查找成功,返回mid的下标。
2)如果target > mid,目标在数组右半部分,low=mid+1
3)target < mid,目标在数组左半部分,high=mid-1
如下数组:
1、首先,指定数组的左指针和右指针,根据公式mid = left +(right - left)/ 2 = 0+(8-0)/2=4计算数组的中位值:
2、用target和数组对应的中位数组值nums[mid]作比较,如果target>nums[mid],需要移动左指针到mid+1的位置,如果target<nums[mid],需要移动右指针到mid-1的位置
3、指针移动后需要重新计算mid值,mid的计算方法和前面相同,继续用target和nums[mid]作比较,如果target>nums[mid],需要移动左指针到mid+1的位置,如果target<nums[mid],需要移动右指针到mid-1的位置
4、指针移动后,需要重新计算mid值,然后再用target和target>nums[mid]作比较,比较结果相同的,找到对应的target