All pastes #1750463 Raw Edit

richard

public text v1 · immutable
#1750463 ·published 2010-01-14 01:26 UTC
rendered paste body
package p2;public class Graph {		static boolean allselected(int []selected)	{		for(int i:selected) {	if(i==0)	return false;	}	return true;	}static final int MAX=7;static final int INFINITE=998;	static void shortpath(int cost[][],int []preced,int []distance)	{	int selected[]=new int[MAX];	int current=0,i,k=0,dc,smalldist,newdist;	for(i=0;i<MAX;i++)	distance[i]=INFINITE;	selected[current]=1;	distance[0]=0;	current=0;	while(!allselected(selected))	{	smalldist=INFINITE;	dc=distance[current];	for(i=0;i<MAX;i++)	{	if(selected[i]==0)	{	newdist=dc+cost[current][i];	if(newdist<distance[i])	{	distance[i]=newdist;	preced[i]=current;	}	if(distance[i]<smalldist)	{	smalldist=distance[i];	k=i;	}	}	}	current=k;	selected[current]=1;	}	}	public static void main(String args[])	{	int cost[][]=new int[][]{new int[]{INFINITE,2,4,7,INFINITE,5,INFINITE},{2,INFINITE,INFINITE,6,3,INFINITE,8},{4,INFINITE,INFINITE,INFINITE,INFINITE,6,INFINITE},{7,6,INFINITE,INFINITE,INFINITE,1,6},{INFINITE,3,INFINITE,INFINITE,INFINITE,INFINITE,7},{5,INFINITE,6,1,INFINITE,INFINITE,6},{INFINITE,8,INFINITE,6,7,6,INFINITE}};	int i;	int preced[]=new int[MAX];	int distance[]=new int[MAX];	shortpath(cost,preced,distance);	for(i=0;i<MAX;i++)	System.out.printf("%d%n",distance[i]);	}}