finish all analysis
This commit is contained in:
@@ -6,7 +6,7 @@ class DijkstraStats:
|
||||
# self.decrease_key_calls = 0
|
||||
# self.add_calls = 0
|
||||
|
||||
def heap_dijkstra(nodes, adj, heap, start, end):
|
||||
def heap_dijkstra(nodes, adj, heap, start):
|
||||
INF = float('inf')
|
||||
dist = [INF] * nodes
|
||||
visited = [False] * nodes
|
||||
@@ -17,7 +17,7 @@ def heap_dijkstra(nodes, adj, heap, start, end):
|
||||
for v in range(nodes):
|
||||
heap.add(v, dist[v])
|
||||
# stats.add_calls += 1
|
||||
|
||||
|
||||
while True:
|
||||
res = heap.extract_min()
|
||||
stats.extract_min_calls += 1
|
||||
@@ -28,9 +28,6 @@ def heap_dijkstra(nodes, adj, heap, start, end):
|
||||
if cur_dist == INF:
|
||||
break
|
||||
|
||||
if cur == end:
|
||||
break
|
||||
|
||||
for nxt, d in adj[cur]:
|
||||
stats.relax_attempts += 1
|
||||
if visited[nxt]:
|
||||
@@ -40,7 +37,8 @@ def heap_dijkstra(nodes, adj, heap, start, end):
|
||||
stats.relax_success += 1
|
||||
dist[nxt] = new
|
||||
heap.decrease_key(nxt, new)
|
||||
|
||||
|
||||
visited[cur] = True
|
||||
|
||||
return dist[end], stats
|
||||
|
||||
# return dist, stats
|
||||
return stats
|
||||
Reference in New Issue
Block a user