WORST & BEST FIT ALGORITHM

//Worst fit algorithm :-

#include<stdio.h>
int main()
{
   int np,nb,i,j;
   puts("Enter number of processes and blocks");
   scanf("%d%d",&np,&nb);

   int p[np],m[nb],all[nb];

   puts("Enter process sizes");
   for(i=0;i<np;i++)
   scanf("%d",&p[i]);

   for(i=0;i<5;i++)
   all[i]=-1;

   puts("Enter block sizes");
   for(i=0;i<nb;i++)
   scanf("%d",&m[i]);

   for(i=0;i<np;i++)
   {
      int flag=-1;
      for(j=0;j<nb;j++)
      {
         if(all[j]==-1&&p[i]<=m[j])
         {
            if(flag==-1)
               flag=j;
            else if(m[flag]<m[j])
/*replace '<' with '>' in above else if statement to get the result of BEST FIT Algorithm*/
               flag=j;
         }
      }
      if(flag!=-1)
      {
         all[flag]=0;
         printf("Process %d = %d is allocated to block %d\n",i+1,p[i],m[flag]);
      }
      else
         printf("Process %d = %d is waiting\n",i+1,p[i]);
   }
   return 0;
}

Comments