Skip to content

Commit f50ce43

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent c242af4 commit f50ce43

1 file changed

Lines changed: 95 additions & 95 deletions

File tree

graphs/dijkstra_2.py

Lines changed: 95 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,112 @@
11
def print_dist(dist, v):
2-
"""
3-
Print vertex distances.
4-
>>> print_dist([0.0, 5.0, 8.0, 9.0], 4)
5-
Vertex Distance
6-
0 0
7-
1 5
8-
2 8
9-
3 9
10-
>>> print_dist([0.0, float('inf')], 2)
11-
Vertex Distance
12-
0 0
13-
1 INF
14-
>>> print_dist([0.0], 1)
15-
Vertex Distance
16-
0 0
17-
"""
18-
print("Vertex Distance")
19-
for i in range(v):
20-
if dist[i] != float("inf"):
21-
print(i," ", int(dist[i]))
22-
else:
23-
print(i," ", "INF")
2+
"""
3+
Print vertex distances.
4+
>>> print_dist([0.0, 5.0, 8.0, 9.0], 4)
5+
Vertex Distance
6+
0 0
7+
1 5
8+
2 8
9+
3 9
10+
>>> print_dist([0.0, float('inf')], 2)
11+
Vertex Distance
12+
0 0
13+
1 INF
14+
>>> print_dist([0.0], 1)
15+
Vertex Distance
16+
0 0
17+
"""
18+
print("Vertex Distance")
19+
for i in range(v):
20+
if dist[i] != float("inf"):
21+
print(i, " ", int(dist[i]))
22+
else:
23+
print(i, " ", "INF")
2424

2525

2626
def min_dist(mdist, vset, v):
27-
"""
28-
Finds the vertex with minimum distance that hasn't been visited yet.
29-
>>> min_dist([0, 4, 2, float('inf')], [True, False, False, False], 4)
30-
2
31-
>>> min_dist([0, 4, 2, 1], [True, False, True, False], 4)
32-
3
33-
>>> min_dist([0, 4, 2, 1], [True, True, True, True], 4)
34-
-1
35-
>>> min_dist([float('inf'), float('inf')], [False, False], 2)
36-
-1
37-
"""
38-
min_val = float("inf")
39-
min_ind = -1
40-
for i in range(v):
41-
if (not vset[i]) and mdist[i] < min_val:
42-
min_ind = i
43-
min_val = mdist[i]
44-
return min_ind
27+
"""
28+
Finds the vertex with minimum distance that hasn't been visited yet.
29+
>>> min_dist([0, 4, 2, float('inf')], [True, False, False, False], 4)
30+
2
31+
>>> min_dist([0, 4, 2, 1], [True, False, True, False], 4)
32+
3
33+
>>> min_dist([0, 4, 2, 1], [True, True, True, True], 4)
34+
-1
35+
>>> min_dist([float('inf'), float('inf')], [False, False], 2)
36+
-1
37+
"""
38+
min_val = float("inf")
39+
min_ind = -1
40+
for i in range(v):
41+
if (not vset[i]) and mdist[i] < min_val:
42+
min_ind = i
43+
min_val = mdist[i]
44+
return min_ind
4545

4646

4747
def dijkstra(graph, v, src):
48-
"""
49-
Runs Dijkstra's algorithm and prints distances.
50-
>>> g = [
51-
... [0.0, 5.0, float('inf'), 10.0],
52-
... [float('inf'), 0.0, 3.0, float('inf')],
53-
... [float('inf'), float('inf'), 0.0, 1.0],
54-
... [float('inf'), float('inf'), float('inf'), 0.0],
55-
... ]
56-
>>> dijkstra(g, 4, 0)
57-
Vertex Distance
58-
0 0
59-
1 5
60-
2 8
61-
3 9
62-
>>> g2 = [
63-
... [0.0, float('inf')],
64-
... [float('inf'), 0.0],
65-
... ]
66-
>>> dijkstra(g2, 2, 0)
67-
Vertex Distance
68-
0 0
69-
1 INF
70-
>>> dijkstra([[0.0]], 1, 0)
71-
Exception raised:
72-
Traceback (most recent call last):
73-
...
74-
UnboundLocalError: cannot access local variable 'i' where it is not associated with a value
75-
"""
76-
mdist = [float("inf") for _ in range(v)]
77-
vset = [False for _ in range(v)]
78-
mdist[src] = 0.0
48+
"""
49+
Runs Dijkstra's algorithm and prints distances.
50+
>>> g = [
51+
... [0.0, 5.0, float('inf'), 10.0],
52+
... [float('inf'), 0.0, 3.0, float('inf')],
53+
... [float('inf'), float('inf'), 0.0, 1.0],
54+
... [float('inf'), float('inf'), float('inf'), 0.0],
55+
... ]
56+
>>> dijkstra(g, 4, 0)
57+
Vertex Distance
58+
0 0
59+
1 5
60+
2 8
61+
3 9
62+
>>> g2 = [
63+
... [0.0, float('inf')],
64+
... [float('inf'), 0.0],
65+
... ]
66+
>>> dijkstra(g2, 2, 0)
67+
Vertex Distance
68+
0 0
69+
1 INF
70+
>>> dijkstra([[0.0]], 1, 0)
71+
Exception raised:
72+
Traceback (most recent call last):
73+
...
74+
UnboundLocalError: cannot access local variable 'i' where it is not associated with a value
75+
"""
76+
mdist = [float("inf") for _ in range(v)]
77+
vset = [False for _ in range(v)]
78+
mdist[src] = 0.0
7979

80-
for _ in range(v - 1):
81-
u = min_dist(mdist, vset, v)
82-
vset[u] = True
80+
for _ in range(v - 1):
81+
u = min_dist(mdist, vset, v)
82+
vset[u] = True
8383

84-
for i in range(v):
85-
if (
86-
(not vset[i])
87-
and graph[u][i] != float("inf")
88-
and mdist[u] + graph[u][i] < mdist[i]
89-
):
90-
mdist[i] = mdist[u] + graph[u][i]
84+
for i in range(v):
85+
if (
86+
(not vset[i])
87+
and graph[u][i] != float("inf")
88+
and mdist[u] + graph[u][i] < mdist[i]
89+
):
90+
mdist[i] = mdist[u] + graph[u][i]
9191

92-
print_dist(mdist, v)
92+
print_dist(mdist, v)
9393

9494

9595
if __name__ == "__main__":
96-
V = int(input("Enter number of vertices: ").strip())
97-
E = int(input("Enter number of edges: ").strip())
96+
V = int(input("Enter number of vertices: ").strip())
97+
E = int(input("Enter number of edges: ").strip())
9898

99-
graph = [[float("inf") for i in range(V)] for j in range(V)]
99+
graph = [[float("inf") for i in range(V)] for j in range(V)]
100100

101-
for i in range(V):
102-
graph[i][i] = 0.0
101+
for i in range(V):
102+
graph[i][i] = 0.0
103103

104-
for i in range(E):
105-
print("\nEdge ", i + 1)
106-
src = int(input("Enter source:").strip())
107-
dst = int(input("Enter destination:").strip())
108-
weight = float(input("Enter weight:").strip())
109-
graph[src][dst] = weight
104+
for i in range(E):
105+
print("\nEdge ", i + 1)
106+
src = int(input("Enter source:").strip())
107+
dst = int(input("Enter destination:").strip())
108+
weight = float(input("Enter weight:").strip())
109+
graph[src][dst] = weight
110110

111-
gsrc = int(input("\nEnter shortest path source:").strip())
112-
dijkstra(graph, V, gsrc)
111+
gsrc = int(input("\nEnter shortest path source:").strip())
112+
dijkstra(graph, V, gsrc)

0 commit comments

Comments
 (0)