java - 如何使用二进制搜索算法找到最接近给定二进制键值的元素?

标签 java algorithm binary-search

我有一个二元 vector 的排序列表,我们称它为 L,我有一个二元 vector q,如何使用二分搜索在 L 中找到最接近 q 的 vector ?

最佳答案

既然你说你有一个排序的 vector 列表,我假设“最接近”是指在排序方面最接近另一个的 vector 。您可以使用 java.util.Arrays.binarySearch为了那个原因。它返回:

index of the search key, if it is contained in the array; otherwise, (- insertion point - 1). The insertion point is defined as the point at which the key would be inserted into the array.

因此,如果 vector q 在数组中,您会发现它的索引和它的邻居离它最近。如果不是,您将找到一个索引 j = -i - 1(ibinarySearch 的结果),其中 q 将被插入,然后 ii-1 将是最接近它的。

关于java - 如何使用二进制搜索算法找到最接近给定二进制键值的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259110/

相关文章:

java - 如何在任何应用程序的 JAR 文件中绑定(bind) MySql 数据库?

java - 为什么 String.replace 不起作用?

系列算法

Python:列表比较以查找列表的唯一元素计数

python - 需要帮助来修复 Python 中的递归二分搜索函数

python - 获取区域包围的第一个和最后一个值的索引

java - 如何从字符串中调用变量?

java - 在 Snow Leopard 上设置 Tomcat 6 和 NetBeans

c - 该函数将被调用多少次?

c - C中数组冒泡排序和二分查找的组合代码问题