本文章介绍如何使用Python编程语言实现经典的迪杰斯特拉(Dijkstra)算法,并通过具体示例演示了如何找出图中节点间的最短路径,附带详尽的源代码供读者参考学习。
def Dijkstra(network, s, d): # 迪杰斯特拉算法计算s到d的最短路径,并返回该路径和代价
print(开始Dijstra Path……)
path = [] # s-d的最短路径
n = len(network) # 邻接矩阵维度,即节点个数
fmax = 999
w = [[0 for i in range(n)] for j in range(n)] # 将邻接矩阵转化为权重矩阵,值从0到最大值
book = [0 for i in range(n)] # 标记列表,表示节点是否已经是最小的代价
dis = [fmax for i in range(n)] # s到其他所有节点的最小距离