Java:想要二进制搜索数组的子集

标签 java binary-search

在 Java 中,Arrays.binarySearch 总是搜索整个数组。有时数组的一部分没有被填充。是否有任何功能可以搜索数组的一部分,例如

int binarySearch(int[] a, int end, int value)

是的,我可以使用 TreeMap<Integer>但我有很多这些和TreeMap<Integer>使用比 int[] 多几倍的内存。

是的,我当然可以编写二进制搜索,但鉴于 Arrays.binarySearch 的存在,我似乎不必自己编写。

最佳答案

有一个重载的Arrays.binarySearch()正是这样做的:

public static int binarySearch(int[] a,
                               int fromIndex,
                               int toIndex,
                               int key)

它在 Java 1.6+ 中可用。

关于Java:想要二进制搜索数组的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022075/

相关文章:

java - 如何在不进行转换的情况下将Unix时间戳转换为LocalDate(Time)

java - 将属性 'source' 设置为 'org.eclipse.jst.jee.server:JSFTut' 未找到匹配的属性

java - 使用 `Collections.binarySearch` 签名实现二进制搜索

c - K&R二分查找代码

c++ - 二分查找是否适合 OpenCL?

java - Spring Batch Java Config 事务属性等效项

java - 使用 iText pdfHTML 的 PDF 页面大小和格式

java - 尝试将 2 个数组传递给方法并使用这 2 个数组中的值打印出一个表

java - 如何检索数组列表中的元素并进行比较?

algorithm - 二进制搜索双调序列中的最大元素