标签:one pre close -- ++ max false span system
public class Dijkstra { static int maxint=1000; public static void Dijkstra(int n,int v,int dist[],int c[][],int prev[]){ boolean s[]=new boolean[n]; for(int i=0;i<n;i++){ dist[i]=c[v][i]; s[i]=false; if(dist[i]==maxint)prev[i]=-1; else prev[i]=v; } s[v]=true; for(int i=0;i<n;i++){ int temp=maxint; int u=v; for(int j=0;j<n;j++){ if(dist[j]<temp&&!s[j]){ temp=dist[j]; u=j; } } s[u]=true; for(int j=0;j<n;j++){ if(!s[j]){ dist[j]=(dist[u]+c[u][j])<dist[j]?dist[u]+c[u][j]:dist[j]; prev[j]=u; } } } } public static void print(int n,int v,int dist[],int prev[]){ int f[]=new int[n]; for(int i=0;i<n;i++) if(i!=v){ int start=n-2; int k=i; f[n-1]=i; while(prev[k]!=v){ f[start--]=prev[k]; k=prev[k]; } f[start]=v; System.out.print("从城市"+v+"——城市"+i+"的最短路径为:"); for(int j=start;j<n;j++) System.out.print(f[j]+"——"); System.out.print("距离为:"+dist[i]); System.out.println(); } } }
标签:one pre close -- ++ max false span system
原文地址:http://www.cnblogs.com/nihai/p/6682873.html