二分(二分答案、二分搜索)与单调性

经典二分搜索是二分空间范围。

二分答案又叫二分猜值,是二分解的值空间。

其实可以统一,普通的二分搜索也是二分答案值域——下标空间,也是猜值。


二分必须满足单调性,最直观的,二分搜索只能在有序数组上进行。单调性体现在,下标和元素值是单调的,也就是 if (j > i) 有 A[j] > A[i]


一般二分答案解决的问题是最优解问题,单调性体现在:如果x0是可行解,则所有x < x0 是都是可行解;如果x0 不是可行解,则所有x (x > x0)都不是可行解。经典例题是“寻找第一个失败的build”,这是个最优解问题(第一个),当build i是failed的,则所有i之后的build都是fail的,build i是成功的,则所有i之前的build都是成功的。


二分答案就是在找那个边界,之前都不满足解的要求,之后都满足。即000111序列找第一个1,当然前提是解的分布满足这种单调性质。


y = f(x) 是个单调函数, 二分查找就是解方程 f(x) = C,假设解为a, 先猜一个x,代入函数f(x)求值,然后比较目标函数 f(x)和C,利用单调性质,f(x) > C 则  x > a,,可得a的范围在x的左边

1)猜值x

2)代入函数求值 f(x)

3) 和target 比较

4)确定下次猜的范围



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值