Floyd-Warshall algorithm: Difference between revisions

m
→‎{{header|ALGOL 68}}: As the data is REAL, use max real for infinity, not max int
(Added Algol 68)
m (→‎{{header|ALGOL 68}}: As the data is REAL, use max real for infinity, not max int)
Line 409:
PROC floyd warshall = ( [,]INT weights, INT num vertices )VOID:
BEGIN
 
REAL infinity = max real;
 
[ 0 : num vertices - 1, 0 : num vertices - 1 ]REAL dist;
FOR i FROM LWB dist TO 1 UPB dist DO
FOR j FROM 2 LWB dist TO 2 UPB dist DO
dist[ i, j ] := max intinfinity
OD
OD;
Line 432 ⟶ 435:
FOR i FROM 1 LWB dist TO 1 UPB dist DO
FOR j FROM 2 LWB dist TO 2 UPB dist DO
IF dist[ i, k ] /= max intinfinity AND dist[ k, j ] /= max intinfinity THEN
IF dist[ i, k ] + dist[ k, j ] < dist[ i, j ] THEN
dist[ i, j ] := dist[ i, k ] + dist[ k, j ];
Line 443 ⟶ 446:
 
print result( dist, nxt )
END # floydwarshallfloyd warshall # ;
 
[,]INT weights = ( ( 1, 3, -2 )
3,045

edits