Design and Analysis of Algorithm Lab 7 | Read Now

Design and Analysis of Algorithm Lab 7

7] From a given vertex in a weighted connected graph, find shortest paths to other vertices using Dijkstra’s algorithm. Write the program in Java


7] Program code

import java.util.*;
public class lab7
{
	public  int distance[] = new int[10];
	public  int cost[][] = new int[10][10];
	public void calc(int n,int s)
	{
		int flag[] = new int[n+1];
		int i,minpos=1,k,c,minimum;
		for(i=1;i<=n;i++)
		{  
			flag[i]=0; 
			this.distance[i]=this.cost[s][i]; 
		}
		c=2;
		while(c<=n)
		{
			minimum=99;
			for(k=1;k<=n;k++)
			{ 
				if(this.distance[k]<minimum && flag[k]!=1)
				{
					minimum=this.distance[i];
					minpos=k;
				}
			} 
           	flag[minpos]=1;
          	 	c++;
          		for(k=1;k<=n;k++)
          		{
         			if(this.distance[minpos]+this.cost[minpos][k] <  this.distance[k] && flag[k]!=1 )
          				this.distance[k]=this.distance[minpos]+this.cost[minpos][k];
          		}   
		} 
	}
	public static void main(String args[])
	{
	 	int nodes,source,i,j;
	 	Scanner in = new Scanner(System.in);
	 	System.out.println("Enter the Number of Nodes \n");
	 	nodes = in.nextInt();
	 	lab7 d = new lab7();
	 	System.out.println("Enter the Cost Matrix Weights: \n");
     		for(i=1;i<=nodes;i++)
    	 		for(j=1;j<=nodes;j++)
    	 		{
    		 		d.cost[i][j]=in.nextInt();
    		 		if(d.cost[i][j]==0)
    			 		d.cost[i][j]=999;
         		}
     			System.out.println("Enter the Source Vertex :\n");
     			source=in.nextInt();
     			d.calc(nodes,source);
     			System.out.println("The Shortest Path from Source "+source+" to all other vertices are : \n");
        		for(i=1;i<=nodes;i++)
        			if(i!=source)
        				System.out.println("source :"+source+"\t destination :"+i+"\t MinCost is :"+d.distance[i]+"\t");
	} 
}

Output

Design and Analysis of Algorithm Lab

Leave a Reply

Your email address will not be published. Required fields are marked *

WhatsApp Icon Join For Job Alerts