0

给定一个问题,如果问题有一个整数,我们怎么知道我们是否必须应用二进制搜索?由于一些明显的原因,我们知道问题是否包含排序数组,我们在那里应用二进制搜索。但是有很多问题没有数组,但二进制搜索仍然适用。

4

2 回答 2

0

如果您正在搜索一个值,并且您可以判断猜测是太高还是太低,那么您可以应用二进制搜索来查找该值。

即使是在排序数组中搜索的常见情况也是如此——我们正在搜索数组中所需元素的索引,并且我们可以判断猜测是太高还是太低,因为数组是排序的。

于 2021-08-25T12:34:32.143 回答
0

出于二分查找的目的,排序后的数组仅表示一个函数,该函数将输入(我们称之为index)映射到与输入相关的单调有序(递增或递减)的输出。

所以如果函数是二进制搜索并不重要

f(x) -> return the element at index x in an array

或者

f(x) -> return 2 * x, for integer x // an example of a monotonically ordered function
于 2021-08-25T15:32:15.463 回答