From 5ab32f1dd2848d359e56018bd0aa708393bb4c0a Mon Sep 17 00:00:00 2001 From: lubaso Date: Fri, 6 Oct 2023 23:16:25 -0300 Subject: [PATCH 1/7] Add doctests and follow contribution guidelines --- graphs/dijkstra_2.py | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index f548463ff7bd..5e3399fc5ce3 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -1,4 +1,20 @@ def print_dist(dist, v): + """ + Print vertex distances. + + Parameters: + dist (list): A list of distances. + v (int): The number of vertices. + + Example: + >>> print_dist([0.0, 2.0, 3.0, float('inf')], 4) + Vertex Distance + 0 0 + 1 2 + 2 3 + 3 INF + """ + print("\nVertex Distance") for i in range(v): if dist[i] != float("inf"): @@ -9,6 +25,18 @@ def print_dist(dist, v): def min_dist(mdist, vset, v): + """ + Find the vertex with the minimum distance. + + Parameters: + mdist (list): A list of distances. + vset (list): A list of boolean values indicating visited vertices. + v (int): The number of vertices. + + Example: + >>> min_dist([0.0, 2.0, 3.0, float('inf')], [False, True, False, False], 4) + 0 + """ min_val = float("inf") min_ind = -1 for i in range(v): @@ -19,6 +47,24 @@ def min_dist(mdist, vset, v): def dijkstra(graph, v, src): + """ + Implement Dijkstra's algorithm to find the shortest path. + + Parameters: + graph (list): The graph represented as an adjacency matrix. + v (int): The number of vertices. + src (int): The source vertex. + + Example: + >>> graph = [[0.0, 2.0, float('inf'), 1.0], [2.0, 0.0, 4.0, float('inf')], [float('inf'), 4.0, 0.0, 3.0], [1.0, float('inf'), 3.0, 0.0]] + >>> dijkstra(graph, 4, 0) + Vertex Distance + 0 0 + 1 2 + 2 3 + 3 1 + """ + mdist = [float("inf") for _ in range(v)] vset = [False for _ in range(v)] mdist[src] = 0.0 From dcbc76d0a5f93cde3668387233848d7063b16fd7 Mon Sep 17 00:00:00 2001 From: lubaso Date: Fri, 6 Oct 2023 23:45:17 -0300 Subject: [PATCH 2/7] Add doctest to dijkstra-algorithm --- graphs/dijkstra_2.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index 5e3399fc5ce3..60270e992121 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -14,7 +14,6 @@ def print_dist(dist, v): 2 3 3 INF """ - print("\nVertex Distance") for i in range(v): if dist[i] != float("inf"): @@ -56,7 +55,10 @@ def dijkstra(graph, v, src): src (int): The source vertex. Example: - >>> graph = [[0.0, 2.0, float('inf'), 1.0], [2.0, 0.0, 4.0, float('inf')], [float('inf'), 4.0, 0.0, 3.0], [1.0, float('inf'), 3.0, 0.0]] + >>> graph = [[0.0, 2.0, float('inf'), 1.0], + [2.0, 0.0, 4.0, float('inf')], + [float('inf'), 4.0, 0.0, 3.0], + [1.0, float('inf'), 3.0, 0.0]] >>> dijkstra(graph, 4, 0) Vertex Distance 0 0 @@ -64,7 +66,6 @@ def dijkstra(graph, v, src): 2 3 3 1 """ - mdist = [float("inf") for _ in range(v)] vset = [False for _ in range(v)] mdist[src] = 0.0 @@ -81,7 +82,7 @@ def dijkstra(graph, v, src): ): mdist[i] = mdist[u] + graph[u][i] - print_dist(mdist, i) + print_dist(mdist, v) if __name__ == "__main__": @@ -101,4 +102,4 @@ def dijkstra(graph, v, src): graph[src][dst] = weight gsrc = int(input("\nEnter shortest path source:").strip()) - dijkstra(graph, V, gsrc) + dijkstra(graph, V, gsrc) \ No newline at end of file From 8679c6375251d378318d0af749ae89e8f07df948 Mon Sep 17 00:00:00 2001 From: lubaso Date: Fri, 6 Oct 2023 23:53:15 -0300 Subject: [PATCH 3/7] Fix trailing whitespace --- graphs/dijkstra_2.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index 60270e992121..a0fb46bd4af6 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -55,10 +55,10 @@ def dijkstra(graph, v, src): src (int): The source vertex. Example: - >>> graph = [[0.0, 2.0, float('inf'), 1.0], - [2.0, 0.0, 4.0, float('inf')], - [float('inf'), 4.0, 0.0, 3.0], - [1.0, float('inf'), 3.0, 0.0]] + >>> graph = [[0.0, 2.0, float('inf'), 1.0], + [2.0, 0.0, 4.0, float('inf')], + [float('inf'), 4.0, 0.0, 3.0], + [1.0, float('inf'), 3.0, 0.0]] >>> dijkstra(graph, 4, 0) Vertex Distance 0 0 From b511783731d92080a18bc733fed7d471765b7e3f Mon Sep 17 00:00:00 2001 From: lubaso Date: Fri, 6 Oct 2023 23:58:26 -0300 Subject: [PATCH 4/7] Add doctest to dijkstra-algorithm --- graphs/dijkstra_2.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index a0fb46bd4af6..8322966121c0 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -56,9 +56,9 @@ def dijkstra(graph, v, src): Example: >>> graph = [[0.0, 2.0, float('inf'), 1.0], - [2.0, 0.0, 4.0, float('inf')], - [float('inf'), 4.0, 0.0, 3.0], - [1.0, float('inf'), 3.0, 0.0]] + ... [2.0, 0.0, 4.0, float('inf')], + ... [float('inf'), 4.0, 0.0, 3.0], + ... [1.0, float('inf'), 3.0, 0.0]] >>> dijkstra(graph, 4, 0) Vertex Distance 0 0 @@ -102,4 +102,4 @@ def dijkstra(graph, v, src): graph[src][dst] = weight gsrc = int(input("\nEnter shortest path source:").strip()) - dijkstra(graph, V, gsrc) \ No newline at end of file + dijkstra(graph, V, gsrc) From 5457d8cbe22e1c346772d5da6ae4c99dae188b53 Mon Sep 17 00:00:00 2001 From: lubaso Date: Sat, 7 Oct 2023 00:18:09 -0300 Subject: [PATCH 5/7] Add doctest to dijkstra-algorithm --- graphs/dijkstra_2.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index 8322966121c0..aca3da0ee708 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -9,10 +9,10 @@ def print_dist(dist, v): Example: >>> print_dist([0.0, 2.0, 3.0, float('inf')], 4) Vertex Distance - 0 0 - 1 2 - 2 3 - 3 INF + 0 0 + 1 2 + 2 3 + 3 INF """ print("\nVertex Distance") for i in range(v): @@ -61,10 +61,10 @@ def dijkstra(graph, v, src): ... [1.0, float('inf'), 3.0, 0.0]] >>> dijkstra(graph, 4, 0) Vertex Distance - 0 0 - 1 2 - 2 3 - 3 1 + 0 0 + 1 2 + 2 3 + 3 1 """ mdist = [float("inf") for _ in range(v)] vset = [False for _ in range(v)] From 1fe17da7dbe52ab0eff4356c144d149786dd9e7f Mon Sep 17 00:00:00 2001 From: lubaso Date: Sat, 7 Oct 2023 00:24:14 -0300 Subject: [PATCH 6/7] Add doctest to dijkstra-algorithm --- graphs/dijkstra_2.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index aca3da0ee708..cb2055265f5d 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -86,8 +86,8 @@ def dijkstra(graph, v, src): if __name__ == "__main__": - V = int(input("Enter number of vertices: ").strip()) - E = int(input("Enter number of edges: ").strip()) + V = int(input("Enter the number of vertices: ").strip()) + E = int(input("Enter the number of edges: ").strip()) graph = [[float("inf") for i in range(V)] for j in range(V)] @@ -101,5 +101,5 @@ def dijkstra(graph, v, src): weight = float(input("Enter weight:").strip()) graph[src][dst] = weight - gsrc = int(input("\nEnter shortest path source:").strip()) + gsrc = int(input("\nEnter the shortest path source:").strip()) dijkstra(graph, V, gsrc) From a83d781eb2aec458371614c65c52c292e4e79c81 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 7 Oct 2023 03:30:49 +0000 Subject: [PATCH 7/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- graphs/dijkstra_2.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/graphs/dijkstra_2.py b/graphs/dijkstra_2.py index cb2055265f5d..aceab6f4705a 100644 --- a/graphs/dijkstra_2.py +++ b/graphs/dijkstra_2.py @@ -9,10 +9,10 @@ def print_dist(dist, v): Example: >>> print_dist([0.0, 2.0, 3.0, float('inf')], 4) Vertex Distance - 0 0 - 1 2 - 2 3 - 3 INF + 0 0 + 1 2 + 2 3 + 3 INF """ print("\nVertex Distance") for i in range(v): @@ -61,10 +61,10 @@ def dijkstra(graph, v, src): ... [1.0, float('inf'), 3.0, 0.0]] >>> dijkstra(graph, 4, 0) Vertex Distance - 0 0 - 1 2 - 2 3 - 3 1 + 0 0 + 1 2 + 2 3 + 3 1 """ mdist = [float("inf") for _ in range(v)] vset = [False for _ in range(v)]