使用自定义函数的Java binarySearch

问题描述 投票:1回答:1

在Java中是否有可能对元素的功能而不是元素本身运行binarySearch?

换句话说,对f(A [i])进行二进制搜索,而不对A [i]进行二进制搜索。

例如,考虑以下数组:[1、3、4、5、9]。目的是找到第一个平方大于或等于20的元素。(在这种情况下,答案为5)。

我们可以通过Java的binarySearch实现(而不是编写自己的二进制搜索)来实现这一点吗?

[我看到有一个采用比较器的binarySearch版本,但是我不确定是否可以保证比较的第一个元素是数组中的元素,而第二个元素是目标?

binarySearch(T[] a, T key, Comparator<? super T> c)

也请注意,“ square”仅是一个示例,它具有相反的平方根。但通常假定没有反向功能。也就是说,我们想将功能应用于元素以进行二分查找。

java function-pointers binary-search
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.