现在我正在对整个图执行 Dijkstra 算法,并通过与原始节点的总距离形成节点的最小堆。然后我从堆中删除前 n 个元素。
这让我觉得效率非常低。假设我需要找到 10 个最近的节点,而我的图有超过 100000 个节点。然后在整个图表上执行 Dijkstra 似乎是在浪费时间。但问题是我不确定是否有任何其他方法可以在不计算图中每个节点的最短路径的情况下找到前 10 个最近的节点。
有没有更好的办法?
现在我正在对整个图执行 Dijkstra 算法,并通过与原始节点的总距离形成节点的最小堆。然后我从堆中删除前 n 个元素。
这让我觉得效率非常低。假设我需要找到 10 个最近的节点,而我的图有超过 100000 个节点。然后在整个图表上执行 Dijkstra 似乎是在浪费时间。但问题是我不确定是否有任何其他方法可以在不计算图中每个节点的最短路径的情况下找到前 10 个最近的节点。
有没有更好的办法?