Sto cercando di usare questa logica per capire cosa sta succedendo con la adjacency matrix, ma io sono massivley confuso in cui si dice circa interspacing per abcd .....Floyd-Warshall Algoritmo Logic - Bloccato
si poteva spiegare cosa sta succedendo qui?
Grazie (contrassegnati come java come il suo linguaggio questo è stato dimostrato a noi in, quindi se qualcuno ha postato qualche esempio di codice hanno potuto vedere che era in quella lingua)
http://compprog.wordpress.com/2007/11/15/all-sources-shortest-path-the-floyd-warshall-algorithm/
Ecco il codice:
for (k = 0; k < n; ++k) {
for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j)
/* If i and j are different nodes and if
the paths between i and k and between
k and j exist, do */
if ((dist[i][k] * dist[k][j] != 0) && (i != j))
/* See if you can't get a shorter path
between i and j by interspacing
k somewhere along the current
path */
if ((dist[i][k] + dist[k][j] < dist[i][j]) ||
(dist[i][j] == 0))
dist[i][j] = dist[i][k] + dist[k][j];
@stan: Floyd-Warshall è uno dei tipici "algo DP", insieme a Modifica di Levenhstein e allo "0-1 Zaino". Per capirlo è necessario capire cos'è la "programmazione dinamica" (la maggior parte dei programmatori che non hanno un diploma in CS non sanno nulla di DP). La voce di Wikipedia sull'argomento è buona: http://en.wikipedia.org/wiki/Dynamic_programming e altrimenti puoi provare a partecipare a qualche competizione online (come TopCoder), dove in genere un bel po 'di problemi hanno bisogno di un DP soluzione. – SyntaxT3rr0r