def dijkstra(graph, start): n = len(graph) visited = [False] * n dist = [max] * n dist[start] = 0 for i in range(n): u = -1 for j in range(n): if not visited[j] and (u == -1 or dist[j] < dist[u]): u = j visited[u] = True for v in range(n): if graph[u][v] != max: alt = dist[u] + graph[u][v] if alt < dist[v]: dist[v] = alt return dist max = 100000 graph = [ [0, 50, max, 40, 25, 10], [50, 0, 15, 20, max, 25], [max, 15, 0, 10, 20, max], [40, 20, 10, 0, 10, 25], [25, max, 20, 10, 0, 55], [10, 25, max, 25, 55, 0] ] n = len(graph) print("任意两个城市之间的最廉航价路线表:") print("{:<6}".format(" "), end=" ") for i in range(n): print("{:<6}".format("City" + str(i+1)), end=" ") print() for i in range(n): dist = dijkstra(graph, i) print("{:<6}".format("City" + str(i+1)), end=" ") for j in range(n): print("{:<6}".format(dist[j]), end=" ") print()
时间: 2024-04-07 11:32:18 浏览: 75
migongwenti.rar_M?n_迷宫问题
这是一段Python代码,实现了Dijkstra算法,用于计算任意两个城市之间的最短路径。给定一个城市之间的航班价格矩阵,该算法可以找到从一个城市到另一个城市的最便宜的路线。
具体来说,该代码计算了从每个城市出发到其他城市的最短路径,并将结果输出到控制台上的一个表格中。表格中的每个单元格都包含从一个城市到另一个城市的最便宜的价格。
需要注意的是,该代码中的max变量是一个很大的值,用于表示两个城市之间没有直接的航班连接。在实际情况中,这个值应该根据具体的问题来确定。
阅读全文