我们如何在竞争性节目的二元搜索问题中决定或找到上下界?

时间:2018-05-04 13:06:36

标签: binary-search

我最近看过topcoder二进制搜索教程,其中我明白我们可以应用二进制搜索但在解决问题时或在topcoder教程中我不明白我们如何决定我们的下限和上限值以及基于什么。

1 个答案:

答案 0 :(得分:0)

搜索空间有下限和上限。在每次查询之后,我们要么提高下限,要么降低上限。

假设您正在尝试猜测某人的号码,范围为0到100。 如果您猜测50,在中间,在二分搜索中,并且该人说50太高,那么您可以将上限减小到50,搜索空间变为0到50。

必须有一个评估函数来确定猜测是“太高”还是“低”,如果结果太“高”,则上限降低,而如果它太“低”,则下限增加。

它可能不像数字范围那么简单,它可能是排序数组的索引,也可能是放入评估函数以确定差异的数字。下限是可能仍然正确的最小猜测,而上限是可能仍然正确的最高可能猜测。

每次,我们都会从搜索空间中删除所有我们知道错误的数字。