首页 > 解决方案 > 我如何猜测(最佳搜索算法)系统中只能回答是或否的任何正整数?

问题描述

假设您猜对了数字,系统只会给出“是”或“否”。让我们举两个例子

1. 数字 = 3

2.号码=134567894567

如您所见,如果您进行线性调用,则可以找到第一个数字,例如:-

is the number = 1? No
is the number = 2? No
is the number = 3? Yes

所以线性搜索算法会更容易实现。

但是,如果元素与134567894567一样大,那么使用二进制搜索方式可能会有意义。如何构建一个提供最佳结果的系统,同时牢记上述限制。

标签: algorithmsearchbinary-searchlinear-search

解决方案


如果系统会给你一个是/否的答案,你就不能使用二分搜索。您需要使用线性搜索。

为了使用二分查找,条件是:

  1. 范围必须有界。
  2. 在每次“猜测”时,它都必须告诉你你需要前进的方向。

这是使用二分搜索的最低要求。因此,对于您目前没有获得所需信息的情况,您必须按照最初的建议使用线性搜索。


推荐阅读