提问人:lenric 提问时间:10/31/2023 更新时间:10/31/2023 访问量:22
给定 2 个点(x,y ->纬度和经度),找到起源和命运更接近的旅行 - 2D 树
Given 2 points (x,y -> latitude and longitude), find the Trip whose origin and destiny is closer - 2D Tree
问:
从本质上讲,我有一个 Trips 的 AVL(除其他外,每个节点都有一个 TripPhases 地图 - 基本上是关于其每个时间戳上的行程数据。 其中 2 个属性是纬度和经度)。
给定 2 个点:起源和命运(表示为纬度和经度)——我们称之为 P1、P2——我必须找到起点和终点最接近这 2 个点的行程。
为了解决这个问题,我创建了 2 个 2D 树。第一个包含给定旅行的起点阶段,第二个包含命运阶段。
我知道,如果只给我 1 分,那会很容易,只需实现 nearestNeighbor 方法即可。不过,有了 2 点就更棘手了,因为 1 Trip 的起源可能更接近第 1 点,但它的命运可能完全遥远。
所以我的想法是创建 2 个树图——> 个用于每次旅行的原点坐标,另一个用于命运坐标。TreeMap 的关键是距离。
之后,我必须计算 2 个 TreeMap 键之间距离差的绝对值(对于同一个 Trip)。
然而,当涉及到 Big O 时,这听起来不是很有效。
有没有更好的方法?
谢谢
答: 暂无答案
上一个:在 C 语言中实现 AVL 树
下一个:检测二叉搜索树重复项并解决冲突
评论