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