如何在仍然具有哈希功能的同时在庞大的项目列表中找到距离最近的项目?

问题描述

我有一长串顶点及其 ID。我想将它们的 id 提供给一个方法并以快速的方式获取顶点,因为它们很多,线性搜索花费的时间太长。

我现在用 HashSet<long id,Vertex v> 做这个,我还想通过比较 Vertex.getCoordinates() 找到最接近我给方法的坐标的顶点,比如 find [X.XXXX,Y.YYYY]我想以一种有效的方式做到这一点,我应该选择使用哪种结构?计算距离方法也需要sqrt(),我可以使用sqrdist(),但我仍然想改进。

我计划并行创建一个类似列表的排序结构(此时 我选择时间而不是空间)并执行 binarySearch() 然后返回最接近的一个,这是一个有效的解决方案吗? 如何让 Java 使用 binarySearch() 而无需自己实现它?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)