复习二分查找的思想

从条件上讲,前提是一个有序的数组,我们通过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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值