Design and Analysis of Algorithm Lab 8 | Read Now

Design and Analysis of Algorithm Lab 8

8] Find Minimum Cost Spanning Tree of a given connected undirected graph using Kruskal’s algorithm. Use Union-Find algorithms in your program


8] Program Code

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.Scanner;
public class lab8
{
int parent[]=new int[10];
int find(int m)
{
int p=m;
while(parent[p]!=0)
p=parent[p];
return p;
}
void union(int i,int j)
{
if(i<j)
parent[i]=j;
else
parent[j]=i;
}
void krkl(int[][]a, int n)
{
int u=0,v=0,min,k=0,i,j,sum=0;
while(k<n-1)
{
min=99;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]<min&&i!=j)
{
min=a[i][j];
u=i;
v=j;
}
i=find(u);
j=find(v);
if(i!=j)
{
union(i,j);
System.out.println("("+u+","+v+")"+"="+a[u][v]);
sum=sum+a[u][v];
k++;
}
a[u][v]=a[v][u]=99;
}
System.out.println("The cost of minimum spanning tree = "+sum);
}
public static void main(String[] args)
{
int a[][]=new int[10][10];
int i,j;
System.out.println("Enter the number of vertices of the graph");
Scanner sc=new Scanner(System.in);
int n;
n=sc.nextInt();
System.out.println("Enter the wieghted matrix");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=sc.nextInt();
lab8 k=new lab8();
k.krkl(a,n);
sc.close();
}
}
import java.util.Scanner; public class lab8 { int parent[]=new int[10]; int find(int m) { int p=m; while(parent[p]!=0) p=parent[p]; return p; } void union(int i,int j) { if(i<j) parent[i]=j; else parent[j]=i; } void krkl(int[][]a, int n) { int u=0,v=0,min,k=0,i,j,sum=0; while(k<n-1) { min=99; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(a[i][j]<min&&i!=j) { min=a[i][j]; u=i; v=j; } i=find(u); j=find(v); if(i!=j) { union(i,j); System.out.println("("+u+","+v+")"+"="+a[u][v]); sum=sum+a[u][v]; k++; } a[u][v]=a[v][u]=99; } System.out.println("The cost of minimum spanning tree = "+sum); } public static void main(String[] args) { int a[][]=new int[10][10]; int i,j; System.out.println("Enter the number of vertices of the graph"); Scanner sc=new Scanner(System.in); int n; n=sc.nextInt(); System.out.println("Enter the wieghted matrix"); for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=sc.nextInt(); lab8 k=new lab8(); k.krkl(a,n); sc.close(); } }
import java.util.Scanner;
public class lab8
{
	int parent[]=new int[10];
    int find(int m)
	{
		int p=m;
		while(parent[p]!=0)
			p=parent[p];
		return p;
	}
	
    void union(int i,int j)
	{
		if(i<j)
			parent[i]=j;
		else
			parent[j]=i;
	}
	
    void krkl(int[][]a, int n)
	{
	int u=0,v=0,min,k=0,i,j,sum=0;
	while(k<n-1)
	{
		min=99;
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(a[i][j]<min&&i!=j)
				{
					min=a[i][j];
					u=i;
					v=j;
				}
		i=find(u);
		j=find(v);
		if(i!=j)
		{
			union(i,j);
			System.out.println("("+u+","+v+")"+"="+a[u][v]);
			sum=sum+a[u][v];
			k++;
		}
		a[u][v]=a[v][u]=99;
	}
	System.out.println("The cost of minimum spanning tree = "+sum);
	}
	
    public static void main(String[] args) 
	{
		int a[][]=new int[10][10];
		int i,j;
		System.out.println("Enter the number of vertices of the graph");
		Scanner sc=new Scanner(System.in);
		int n;
		n=sc.nextInt();
		
		System.out.println("Enter the wieghted matrix");
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				a[i][j]=sc.nextInt();
		lab8 k=new lab8();
		k.krkl(a,n);
		sc.close();
	}
}

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