【发布时间】:2011-11-29 19:03:53
【问题描述】:
所以我正在构建一个 GPS 应用程序。我有一个道路对象的集合,每个对象都包含一个起点和终点(以及道路弯曲的其他中间点)。我已经实现了 dijkstra 的算法来查找最短路径(其中道路是图中的节点),但在运行它之前,我需要确定哪些道路彼此相邻(连接)以便创建边。
简单(?)的方法是遍历每条道路并在嵌套循环中查看是否有其他道路也在同一点开始/结束。但这似乎是 O(N^2) 效率低下。一种想法是将道路预先划分为区域(即在英国会有 NW、NE、E、SE、SW 等),然后只在同一区域中寻找邻居,从而减少搜索空间。
向更有经验的程序员寻求建议,您将如何解决这个问题?
这不是家庭作业,我最近毕业了,我正在把它作为一个宠物项目来做,以获得一些实践经验并稍微充实简历。
编辑:我应该添加只在起点/终点连接的道路
【问题讨论】: