Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Python by Cichy ( 14 years ago )
def Dijkstra(C,s):
 V = set(range(0,len(C)))
 D = [0] * len(V)
 for i in range(0,len(V)):
  D[i] = C[s][i]
 S = set()
 S.add(s)
 for i in range(0,len(V)-1):
  w = argmin(V-S,D)
  S.add(w)
  for v in V-S:
    D[v] = min(D[v], D[w]+C[w][v] )
 return D

def argmin(W,D):
 T = list(W)
 w = T[0]
 for i in range(1,len(T)):
  if D[w] > D[T[i]]:
   w = T[i]
 return w

X=1e300
C = [
[0,10,X,30,100],
[X,0,50,X,X],
[X,X,0,X,10],
[X,X,20,0,60],
[X,X,X,X,0]
]

print Dijkstra(C, 0)

 

Revise this Paste

Your Name: Code Language: