我将地址坐标(纬度、经度)的集合保存在数据库表中。
基于用户当前位置,例如用户位于 (55,65),应该有一个有效的算法来预测最近的地址对应于用户当前位置 (55,65),例如在这种情况下最近的地址是 Address13。 查找每个点的距离并不是有效的解决方案,因为地址数据可能会增长到数百万。
最佳答案
最好的办法是在数据集上实现一些最小生成树算法,然后在添加数据时向 MST 添加地址。 O(ElogV)
然后您将能够搜索每个节点的邻接列表以找到最近的节点,而不是搜索整个表。 O(E)
或者写一个搜索图的贪心算法。给它一个点和一个半径来观察,然后它就不会看 >radius 之外的点。
关于algorithm - 查找最近点对应于散点图中的给定点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44521137/