Graph 在有向加权图中找到离给定节点最近的n个节点的最快方法

Graph 在有向加权图中找到离给定节点最近的n个节点的最快方法,graph,dijkstra,shortest-path,min-heap,closest-points,Graph,Dijkstra,Shortest Path,Min Heap,Closest Points,现在,我正在对整个图执行Dijkstra算法,并根据到原始节点的总距离形成一个最小的节点堆。然后我从堆中删除前n个元素 这让我觉得效率很低。假设我需要找到10个最近的节点,而我的图有超过100000个节点。然后在整个图形上执行Dijkstra的似乎是浪费时间。但问题是,如果不计算图中每个节点的最短路径,我无法确定是否有其他方法可以找到前10个最近的节点 有更好的方法吗?Dijkstra通过迭代添加到源的距离最小的节点来工作。这是一个我们确信其距离的节点,没有比这更短的路径。因此,如果我们想找到1

现在,我正在对整个图执行Dijkstra算法,并根据到原始节点的总距离形成一个最小的节点堆。然后我从堆中删除前n个元素

这让我觉得效率很低。假设我需要找到10个最近的节点,而我的图有超过100000个节点。然后在整个图形上执行Dijkstra的似乎是浪费时间。但问题是,如果不计算图中每个节点的最短路径,我无法确定是否有其他方法可以找到前10个最近的节点


有更好的方法吗?

Dijkstra通过迭代添加到源的距离最小的节点来工作。这是一个我们确信其距离的节点,没有比这更短的路径。因此,如果我们想找到10个最近的节点,我们可以在向封闭集添加10个节点后终止搜索。

我明白了。由于Dijsktra是贪婪的,我们总是有一个节点访问后的最短路径。之后添加的任何节点都具有更长的路径。是这样吗?