Skip to content
This repository was archived by the owner on Oct 2, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions Algorithms/mcm.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
#include<stdio.h>
#include<limits.h>
#include<conio.h>
#define INFY 999999999
long int m[20][20];
int s[20][20];
int p[20],i,j,n;
void print_optimal(int i,int j)
{
if (i == j)
printf(" A%d ",i);
else
{
printf("( ");
print_optimal(i, s[i][j]);
print_optimal(s[i][j] + 1, j);
printf(" )");
}
}
void matmultiply( )
{
long int q;
int k;
for(i=n;i>0;i--)
{
for(j=i;j<=n;j++)
{
if(i==j)
m[i][j]=0;
else
{ for(k=i;k<j;k++) {
q=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(q<m[i][j])
{
m[i][j]=q;
s[i][j]=k;
}}}}}
}
int MatrixChainOrder(int p[ ], int i, int j)
{
if(i == j)
return 0;
int k;
int min = INT_MAX;
int count;
for (k = i; k <j; k++)
{
count = MatrixChainOrder(p, i, k) +
MatrixChainOrder(p, k+1, j) +
p[i-1]*p[k]*p[j];
if (count < min)
min = count;
}
return min;
}
void main()
{
clrscr();
int k;
printf("Enter the no. of elements: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
m[i][i]=0;
m[i][j]=INFY;
s[i][j]=0;
}
printf("\nEnter the dimensions: \n");
for(k=0;k<=n;k++)
{
printf("d%d: ",k);
scanf("%d",&p[k]);
}
matmultiply( );
printf("\nCost Matrix M:\n");
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
printf("m[%d][%d]: %ld\n",i,j,m[i][j]);
i=1,j=n;
printf("\nMultiplication Sequence : ");
print_optimal(i,j);
printf("\nMinimum number of multiplications is : %d ",m[1][n]);
getch();
}
87 changes: 87 additions & 0 deletions FCFS.CPP
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int i,no;
class fcfs{
public:
int bt[10],wt[10],tp[10];
float sum_wt,sum_tp;
float av_wt,av_tp;
fcfs()
{
sum_wt=0;
sum_tp=0;
}
void init();
void input_burst();
void input_waiting();
void input_turn();
void average();
void output();
};
void main()
{
clrscr();
fcfs f;
f.init();
f.input_burst();
f.input_waiting();
f.input_turn();
f.average();
f.output();
getch();
}
void fcfs::input_burst()
{
for(i=1;i<=no;++i)
{
cout<<"Enter Burst time for Process "<<i<<": ";
cin>>bt[i];
}
cout<<"\n***************************\n";
}


void fcfs::init()
{
cout<<"Enter number of Process: ";
cin>>no;
cout<<"\n***************************\n";
}
void fcfs::input_waiting()
{
wt[1]=0;
for(i=2;i<=no;++i)
{
wt[i]=wt[i-1]+bt[i-1];
}
}
void fcfs::input_turn()
{
for(i=1;i<=no;++i)
{
tp[i]=wt[i]+bt[i];
}
}
void fcfs::average()
{
for(i=1;i<=no;++i)
{
sum_wt=sum_wt+wt[i];
sum_tp=sum_tp+tp[i];
}
av_wt=(float)(sum_wt/no);
av_tp=(float)(sum_tp/no);
}
void fcfs::output()
{
cout<<"Process no\tBurst time\tWaiting time\tTurnaround time\n";
for(i=1;i<=no;++i)
{
cout<<i<<"\t\t"<<bt[i]<<"\t\t"<<wt[i]<<"\t\t"<<tp[i]<<"\n";
}
cout<<"\n***************************\n";
cout<<"Average Waiting time: "<<av_wt<<"\n";
cout<<"Average Turnaround time: "<<av_tp;
cout<<"\n***************************\n";
}