Files
dijkstra-runtime-analysis/codes/core/dijkstra/pure_dijkstra.py
T
2026-04-20 00:36:28 +09:00

29 lines
670 B
Python

def pure_dijkstra(nodes, adj, start):
dist = [float('inf')] * nodes
dist[start] = 0
visited = [False] * nodes
cur = start
while True:
if cur == -1:
break
for next, d in adj[cur]:
if not visited[next]:
new = dist[cur] + d
if new < dist[next]:
dist[next] = new
visited[cur] = True
# Finding min node
min_node = -1
min_val = float('inf')
for n in range(nodes):
if not visited[n] and dist[n] < min_val:
min_node = n
min_val = dist[n]
cur = min_node
return dist