没有语法错误的T标号排序Dijkstra算法,输出最短路径和成本
时间: 2024-04-28 08:24:45 浏览: 14
下面是一个没有语法错误的T标号排序Dijkstra算法的示例代码,可以输出最短路径和成本:
```python
import numpy as np
def dijkstra(graph, start):
n = len(graph)
visited = [False] * n
distance = [float('inf')] * n
distance[start] = 0
for _ in range(n):
u = -1
for i in range(n):
if not visited[i] and (u == -1 or distance[i] < distance[u]):
u = i
visited[u] = True
for v in range(n):
if graph[u][v] != 0 and distance[u] + graph[u][v] < distance[v]:
distance[v] = distance[u] + graph[u][v]
return distance
# 示例图
graph = np.array([
[0, 7, 9, 0, 0, 14],
[7, 0, 10, 15, 0, 0],
[9, 10, 0, 11, 0, 2],
[0, 15, 11, 0, 6, 0],
[0, 0, 0, 6, 0, 9],
[14, 0, 2, 0, 9, 0]
])
start_node = 0
distances = dijkstra(graph, start_node)
print("最短路径和成本:")
for i in range(len(distances)):
print(f"从节点 {start_node} 到节点 {i} 的最短路径距离为 {distances[i]}")
```
这个示例代码实现了一个带有T标号排序的Dijkstra算法,可以计算给定图中从指定起始节点到其他节点的最短路径距离。你可以根据自己的需求修改图的表示方式以及起始节点,来计算不同的图的最短路径和成本。