Advertisement
Guest User

Vadim

a guest
Dec 8th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. def Dijkstra(matrix):
  2.     N = len(matrix)
  3.     valid = [True]*N        
  4.     weight = [1000000]*N
  5.     weight[0] = 0
  6.     for i in range(N):
  7.         min_weight = 1000001
  8.         ID_min_weight = -1
  9.         for i in range(len(weight)):
  10.             if valid[i] and weight[i] < min_weight:
  11.                 min_weight = weight[i]
  12.                 ID_min_weight = i
  13.         for i in range(N):
  14.             if weight[ID_min_weight] + matrix[ID_min_weight][i] < weight[i]:
  15.                 weight[i] = weight[ID_min_weight] + matrix[ID_min_weight][i]
  16.         valid[ID_min_weight] = False
  17.     return weight
  18.  
  19. def main():
  20.     matrix = [
  21.         [0, 10, 8, 6, 5],
  22.         [0, 0, 0, 0, 5],
  23.         [0, 0, 0, 0, 5],
  24.         [0, 10, 0, 0, 5],
  25.         [0, 0, 0, 0, 0]
  26.     ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement