从条件上讲,前提是一个有序的数组,我们通过nums[]来表示,这样才能更好的比较大小。
为了查找一个目标数target,我们必须先了解有序数组的属性。
有序数组的范围为从left=0到right=nums.length-1,其中间索引可以用(left+right)/2表示或者left+((right-left)>>2)表示,我们把这个中间索引用mid=(left+right)/2表示,值叫num=nums[mid]。
为了确定target在有序数组中的范围,我们可以从有序的数组中找到一个有序数组的中间数与它比较大小,如果target等于num,那么mid就是在有序数组中的目标值的索引,如果target小于num,那么其比较的范围可以缩小到0到mid-1之间(mid-1减去1的原因是中间值已经参与过比较),实现形式即是
right=mid-1。如果target大于num,那么其比较的范围可以缩小到mid+1到right之间(mid+1加1的原因是中间值已经参与过比较),在这个比较的过程中,必然是left<=right,直到left不等于right的时候,
这个比较过程才会结束循环。(left<=right)