[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2024-10-25 16:12:54 +00:00
parent 346a955946
commit e3db05b375

View File

@ -1,9 +1,10 @@
import heapq import heapq
import sys import sys
#First implementation of johnson algorithm
#Steps followed to implement this algorithm is given in the below link: # First implementation of johnson algorithm
#https://brilliant.org/wiki/johnsons-algorithm/ # Steps followed to implement this algorithm is given in the below link:
# https://brilliant.org/wiki/johnsons-algorithm/
class JohnsonGraph: class JohnsonGraph:
def __init__(self): def __init__(self):
self.edges = [] self.edges = []
@ -20,9 +21,9 @@ class JohnsonGraph:
# perform a dijkstra algorithm on a directed graph # perform a dijkstra algorithm on a directed graph
def dijkstra(self, s): def dijkstra(self, s):
distances = {vertex: sys.maxsize-1 for vertex in self.graph} distances = {vertex: sys.maxsize - 1 for vertex in self.graph}
pq = [(0,s)] pq = [(0, s)]
distances[s] = 0 distances[s] = 0
while pq: while pq:
weight, v = heapq.heappop(pq) weight, v = heapq.heappop(pq)
@ -36,9 +37,9 @@ class JohnsonGraph:
heapq.heappush(pq, (distances[node], node)) heapq.heappush(pq, (distances[node], node))
return distances return distances
#carry out the bellman ford algorithm for a node and estimate its distance vector # carry out the bellman ford algorithm for a node and estimate its distance vector
def bellman_ford(self, s): def bellman_ford(self, s):
distances = {vertex: sys.maxsize-1 for vertex in self.graph} distances = {vertex: sys.maxsize - 1 for vertex in self.graph}
distances[s] = 0 distances[s] = 0
for u in self.graph: for u in self.graph:
@ -47,10 +48,10 @@ class JohnsonGraph:
distances[v] = distances[u] + w distances[v] = distances[u] + w
return distances return distances
#perform the johnson algorithm to handle the negative weights that # perform the johnson algorithm to handle the negative weights that
# could not be handled by either the dijkstra # could not be handled by either the dijkstra
#or the bellman ford algorithm efficiently # or the bellman ford algorithm efficiently
def johnson_algo(self): def johnson_algo(self):
self.add_vertices("#") self.add_vertices("#")
for v in self.graph: for v in self.graph: