二分法注意事项(关于边界处理问题)

总结:[min,max]  max=midumn-1,min=midumn+1 while(min>=max)

           [min,max) max=midumn,min=midumn+1,while(min>max)

[min,max]注意max和min都被包含。当midumn>target时,因为midumn是已经知道不符合要求了,而区间是包含max的,所以应该max=midumn-1,以此保证搜索区间上没有midumn,同理当midumn<target时,min=midumn+1

相同的道理,判断循环的结束,while(min>=max),注意这里是可以=的,因为就算min和max相等也一样在闭区间仍然是合法的

[min,max),此时max是不被包含的,所以当midumn>target时,max=midumn,确保可能符合条件的midumn-1在搜索区间内,当midumn<target时,则min=midumn+1

判断循环结束,while(min>max),大家可以结合前面的自己思考一下,我就不在赘述了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值