Job Sequencing with Deadlines Algorithm
SOURCE CODE:
#include<stdio.h>
int j,n,t;
int check(int s[],int p)
{
int ptr=0,i;
for(i=0;i<n;i++)
{if(s[i]==p)
ptr++;
}
if(ptr==0)
return 1;
else
return 0;
}
int main()
{
printf("Enter # of jobs :\n");
scanf("%d",&n);
int slot[n],p[n],d[n],i;
printf("Enter profits & deadlines : \n");
for(i=0;i<n;i++){
slot[i]=0;
scanf("%d%d",&p[i],&d[i]);
}
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(p[i]<p[j])
{
t=p[i];p[i]=p[j];p[j]=t;
t=d[i];d[i]=d[j];d[j]=t;
}
for(i=0;i<n;i++)
for(j=d[i];j>0;j--){
if(check(slot,j)==1){
slot[i]=j;
break;
}
}
printf("\nPROFIT DEADLINE SLOT\n");
for(i=0;i<n;i++){
if(slot[i]>0)
printf("\n%d %d [%d--%d]",p[i],d[i],slot[i]-1,slot[i]);
else
printf("\n%d %d REJECTED",p[i],d[i]);
}
return 0;
}
OUTPUT:
Enter # of jobs :
5
Enter profits & deadlines :
60 2
100 1
20 3
40 2
20 1
PROFIT DEADLINE SLOT
100 1 [0--1]
60 2 [1--2]
40 2 REJECTED
20 3 [2--3]
20 1 REJECTED
#include<stdio.h>
int j,n,t;
int check(int s[],int p)
{
int ptr=0,i;
for(i=0;i<n;i++)
{if(s[i]==p)
ptr++;
}
if(ptr==0)
return 1;
else
return 0;
}
int main()
{
printf("Enter # of jobs :\n");
scanf("%d",&n);
int slot[n],p[n],d[n],i;
printf("Enter profits & deadlines : \n");
for(i=0;i<n;i++){
slot[i]=0;
scanf("%d%d",&p[i],&d[i]);
}
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(p[i]<p[j])
{
t=p[i];p[i]=p[j];p[j]=t;
t=d[i];d[i]=d[j];d[j]=t;
}
for(i=0;i<n;i++)
for(j=d[i];j>0;j--){
if(check(slot,j)==1){
slot[i]=j;
break;
}
}
printf("\nPROFIT DEADLINE SLOT\n");
for(i=0;i<n;i++){
if(slot[i]>0)
printf("\n%d %d [%d--%d]",p[i],d[i],slot[i]-1,slot[i]);
else
printf("\n%d %d REJECTED",p[i],d[i]);
}
return 0;
}
OUTPUT:
Enter # of jobs :
5
Enter profits & deadlines :
60 2
100 1
20 3
40 2
20 1
PROFIT DEADLINE SLOT
100 1 [0--1]
60 2 [1--2]
40 2 REJECTED
20 3 [2--3]
20 1 REJECTED
Comments
Post a Comment