最短路径(java)
1.FLOYD
import java.util.Scanner; class G{ int n; int[][] g=new int[100][100]; void FLOYD(G g) { int i,j,k; for(k=0;k<g.n;k++) { for(i=0;i<g.n;i++) { for(j=0;j<g.n;j++) { g.g[i][j]=Math.min(g.g[i][j],g.g[i][k]+g.g[k][j]); } } } }//弗洛伊德算法 }
2.迪杰斯特拉算法
void Dijskra(int v0,int d[]) { int i,j,r,v; int[] visit=new int[100]; for(i=0;i<n;i++)d[i]=g[v0][i]; v=visit[v0]=1; for(i=0;i<n-1;i++) { r=9999999; for(j=0;j<n;j++) { if(visit[j]==0&&r>d[j]){ r=d[j]; v=j; } } visit[v]=1; for(j=0;j<n;j++) d[j]=Math.min(d[j],r+g[v][j]); } }
stay hungry stay foolish