Est-ce ceci ?
fonction Dijkstra(G,source)
// G matrice carree symetrique de taille n donnant la longueur
// du sommet i au sommet j
// renvoie la plus courte longueur et le sommet précédent
local v,todo,todov,j,dist,distv,alt,prev,n;
n:=size(G);
// initialisation
todo:=seq(j,j,0,n-1); dist:=[inf$n]; prev:=[-1$n]; dist[source]=<0;
tantque size(todo)!=0 faire
// sommet realisant la longueur min parmi ceux restant
v:=0;
todov:=todo[v];
distv:=dist[todov];
pour j de 0 jusque size(todo)-1 faire
si dist[todo[j]]<distv alors v:=j; todov:=todo[v]; distv:=dist[todo[j]]; fsi;
fpour;
si distv==inf alors return dist,prev; fsi; // fin algo prematuree
todo:=suppress(todo,v); // supprime todo[v]
// cherche les distances en passant par todo[v]
for j in todo do
alt:=distv+G[todov,j];
si alt<dist[j] alors dist[j]:=alt; prev[j]:=todov; fsi;
od;
ftantque;
return dist,prev;
ffonction:;
Je ne comprends rien...