贪心算法-dijkstra最短路径代码
时间: 2023-07-12 11:45:54 浏览: 110
好的,下面是使用 Dijkstra 最短路径算法求解带权图中的单源最短路径问题的代码实现(假设图用邻接矩阵表示):
```python
import sys
def dijkstra(graph, start):
# 初始化距离列表和visited列表
distances = [sys.maxsize] * len(graph)
visited = [False] * len(graph)
distances[start] = 0
# 对于每个顶点,更新距离列表
for _ in range(len(graph)):
# 找到当前距离起点最近的顶点
min_dist = sys.maxsize
min_index = -1
for i in range(len(graph)):
if not visited[i] and distances[i] < min_dist:
min_dist = distances[i]
min_index = i
# 标记该顶点为visited
visited[min_index] = True
# 更新距离列表
for i in range(len(graph)):
if not visited[i] and graph[min_index][i] != 0 and distances[min_index] + graph[min_index][i] < distances[i]:
distances[i] = distances[min_index] + graph[min_index][i]
return distances
```
以上是 Dijkstra 最短路径算法的 Python 实现。在实际使用中,还需要注意输入数据的格式和边界条件的处理。
阅读全文