Floyd-Warshall算法
for (int k=1;k<=n;k++) { for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { if (a[i][k]+a[k][j]<a[i][j]) { a[i][j]=a[i][k]+a[k][j]; } } } }
Bellman-Ford算法
for (int loop=1;loop<=n;loop++) { flag=true; for (int i=1;i<=n;i++) { for (int j=1;j<=n;j++) { if (a[i][j]!=0) { if (dist[j]>dist[i]+a[i][j]) { dist[j]=dist[i]+a[i][j]; flag=false; } } } } if (flag)break; }