Sunteți pe pagina 1din 1

Roy Floyd

Pasul 1: Se umple matricea W a distantelor minime cu o valoare foarte mare (MAX=1.000.000).

Pasul 2: Se copiaza matricea peste matricea W, matricea distantelor D citita de la tastatura.

Pasul 3: Se parcurg toate elementele matricei D si in functie de valorea elementului D[i][j] avem doua
situatii:

Situatia 1: Daca valoara lui W[i][j] este egala cu MAXIM atunci se trece la urmatorul element din
matrice.

Situatia 2: Daca valoarea lui W[i][j] este mai mica decat valoarea MAXIM atunci se cauta in multimea
nodurilor un nod k astfel incat W[i][k]>W[i][j] +W[j][k] (adica distanta de la i la k sa fie mai mare decat
distanta de la i la j adunata cu distana de la j la k) ((adica daca prin drumul dintre i si j se poate ajunge
mai repede la oricare alt nod).

*Daca conditia este adevarata atunci W[i][k] devin suma dintre W[i][j] si W[j][k]. (adica de la i la k se
poate ajunge mai repede daca se trece prin nodul j inainte).

Algoritmul se opreste dupa ce este verificat si ultimul element.