【发布时间】:2015-05-08 10:54:59
【问题描述】:
如何在常规二分搜索中设置我的条件,以便找到最大值 x,使得 f(x) t。
现在我的界限是
if f(x) > t then high = x-1
else if f(x)< t then low = x+1
else return x
主while循环是while low <= high
【问题讨论】:
-
f(x) <= t时才返回? -
f(x) 的最大值
-
你的集合是按 f(x) 排序的吗?如果没有,你不能使用二分搜索...
-
@MyNameIsKhan 这看起来不像二进制搜索。您应该选择您知道所需答案所在的桶的中间值,而不仅仅是减少搜索空间的大小。
-
@Asad 不,它是二分搜索的主 while 循环的核心。 x 是低和高范围的中间值。