Bully Algorithm in Java program
BULLY ALGORITHM
import java.util.*;
class ba
{
public static int np[]=new int[10];
public static int priority[]=new int[10];
public static int status[]=new int[10];
public static int n,i,p,c,ch;
public static int crash,recover,ele,co;
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the number of process = ");
n=sc.nextInt();
//Scanner sc=new Scanner(System.in);
System.out.println("Enter the priority for"+n+" processes \n");
for(i=0;i<n;i++)
{
System.out.println("Priority for process"+(i+1));
p=sc.nextInt();
priority[i]=p;
}
for(i=0;i<n;i++)
{
status[i]=1;
}
do
{
System.out.println("1.crash 2.Recovery 3.exit");
System.out.println("Enter your Choice = ");
ch=sc.nextInt();
switch(ch)
{
case 1:
System.out.println("Which process you want to crash = ");
crash=sc.nextInt();
status[(crash-1)]=0;
System.out.println("Process status = ");
for(i=0;i<n;i++)
{
if(status[i]==0)
System.out.println("process "+(i+1)+ "is crashed ");
else
System.out.println("process "+(i+1)+ "is alive");
}
System.out.println("Enter the process which will hold election = ");
ele=sc.nextInt();
cr(ele);
break;
case 2:
System.out.println("Which process you want to recover = ");
recover=sc.nextInt();
status[recover-1]=1;
if(priority[recover-1]<priority[c])
System.out.println("Co-ordinator is not changed");
else
c=recover;
System.out.println("New Co-ordinator is = "+c);
System.out.println("Co-ordinator is changed");
break;
case 3:
break;
}
} while(ch!=3);
}
static void cr(int ele)
{
ele = ele-1;
c= ele+1;
for(int i=0;i<n;i++)
{
if(priority[ele]<priority[i])
{
System.out.println("Election message is sent from "+(ele+1)+" to "+(i+1));
if(status[i]==1)
cr(i+1);
}
}
System.out.println("Final coordinator is = "+ c);
}
}
Output
Comments
Post a Comment