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