使用python,是否有一个函数可以让我找到networkx图中两个节点之间的最短距离。该功能本身不能来自networkx。基本上我要问的是,networkx.shortest_path_length()是否有替代函数,而不实际使用NetworkX。我查看了源代码,它也有nx函数。
是的,Dijkstra’s algorithm。该算法创建一个从起始顶点,源到图中所有其他点的最短路径树。
def dijkstra(self, src):
dist = [sys.maxint] * self.V
dist[src] = 0
sptSet = [False] * self.V
for cout in range(self.V):
u = self.minDistance(dist, sptSet)
sptSet[u] = True
for v in range(self.V):
if self.graph[u][v] > 0 and sptSet[v] == False and dist[v] > dist[u] + self.graph[u][v]:
dist[v] = dist[u] + self.graph[u][v]
self.printSolution(dist)