首先重新声明变量
查找的到:return mid+1,也就是说,其当前插入的这个数据所处的loc是在mid之后+1的位置,假如数组{1,10,20,30}中插入的是20,它所处的loc就是3,很明了。
查找不到:return low。我们也可以这样理解,还是上面的数组,当插入的是15的时候,也就是说,折半查找首先查找到的会是10,所以,简单点来说,插入数据的当前loc也可以认为是mid+1。准确点来说:当查找不到的时候while(low<=high)中的条件是不成立的,就是说,此时,low>high,那么return low,low此刻的loc是多少呢,是=high+1,或者是mid+1,因为high和mid是处于同一loc下,要说明一下的是low的值不需要=high+2或者是=mid+2,因为当low=high+1的时候,while中的条件就已经不成立了。
当查找不到的时候,我们不建议return mid+1或者high+1,是因为return low,更准确和规范。
个人的一点见解,不知正否,还请同门多多指教! |
|