Friday 22 April 2016

Banker Algorithms

#include<stdio.h>
#include<conio.h>
int main()
{
int a[10][10],b[10][10],c[10][10],e[10],i,j,k,l,total[10],s=0,f[10],p[10],count=0,po=1,count1=0,n1,n2;
printf("Number of Process:-");
scanf("%d",&n1);
printf("Number of Resource:-");
scanf("%d",&n2);
for(i=0;i<n2;i++)
{
printf("Resource %d:-",i+1);
scanf("%d",&total[i]);
}
printf("Maximum:-\n");
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
scanf("%d",&a[i][j]);
}
p[i]=i;
}
printf("Allocation:-\n");
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
scanf("%d",&b[i][j]);
}
}
printf("Need:-\n");
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
c[i][j]=a[i][j]-b[i][j];
printf("%d  ",c[i][j]);
}
printf("\n");
}
for(i=0;i<n2;i++)
{
for(j=0;j<n1;j++)
{
s=s+b[j][i];
}
e[i]=s;
s=0;
}
    for(i=0;i<n2;i++)
f[i]=total[i]-e[i];
i=0;
kl:
po=1;
for(j=0;j<n2&&p[i]!=900;j++)
{
if(c[i][j]<=f[j])
{
count++;
}
else
break;
}
if(count==n2)
{
for(k=0;k<n2;k++)
{
f[k]+=b[i][k];
}
printf("Sequence-%d\n",p[i]);
p[i]=900;
po=0;
}
count=0;
if(po==0)
i=0;
else
i++;
if(i!=n1)
goto kl;
for(i=0;i<n1;i++)
{
if(p[i]==900)
count1++;
}
if(count1==n1)
printf("\n\nSafe State\n");
else
printf("Unsafe State\n");
getch();
}

Friday 15 April 2016

HEAP SORT C++ IMPLEMENTATION

#include<iostream>
using namespace std;

class sort
{
int a[10],n,i,j,size;
    public:
void val();
void buildmax();
void maxheapify(int);
void heapsort();
void print();
};
void sort::val()
{
cout<<"Enter element Size : ";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"elem "<<i<<" : " ;
cin>>a[i];
}
i=1,j=n;

}
void sort::heapsort()
{
int temp;
buildmax();
for(i=n;i>=2  ;i--)
{
temp=a[i];
a[i]=a[1];
a[1]=temp;
size=size-1;
maxheapify(1);
}
}


void sort::buildmax()
{
size=n;
for(i=n/2;i>=1;i--)
maxheapify(i);
}
void sort::maxheapify(int i)
{
int lar;
int l=i*2;
int r=i*2+1;
if(l<=size&&a[l]>a[i])
lar=l;
else
lar=i;
if(r<=size&&a[r]>a[lar])
lar=r;
if(i!=lar)
{
int temp=a[i];
a[i]=a[lar];
a[lar]=temp;
maxheapify(lar);
}

}

void sort::print()
{
cout<<"\n\theap Sort\n";
for(i=1;i<=n;i++)
cout<<"\t"<<a[i];
}
int main()
{
sort obj;
obj.val();
obj.heapsort();
obj.print();
}

Quick sort c++ implementation

#include<iostream>
using namespace std;
class sorting
{
int a[10],n;
public:
sorting()
{
cout<<"Number of Element:-";
cin>>n;
cout<<"Unsorted Element:-";
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int p=1;
int r=n;
quick(p,r);
}
int operation(int p,int r)
{
int x=a[r];
int i=p-1;
for(int j=p;j<r;j++)
{
if(a[j]<=x)
{
i++;
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int t1=a[i+1];
a[i+1]=a[r];
a[r]=t1;
return i+1;
}
void quick(int p,int r)
{
if(p<r)
{
int q=operation(p,r);
quick(p,q-1);
quick(q+1,r);
}
}
void disp()
{
cout<<"Sorted Element:-";
for(int i=1;i<=n;i++)
{
cout<<a[i]<<endl;
}
}
};
int main()
{
sorting x;
x.disp();
}

merge sort c++ implementation

#include<iostream>
using namespace std;
class sorting
{
int a[10],n;
public:
sorting()
{
cout<<"Number of Element:-";
cin>>n;
cout<<"Unsorted Element:-";
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int p=1;
int r=n;
merge(p,r);
}
void operation(int p,int q,int r)
{
int n1=-p+1+q;
int n2=r-q;
int L[10];
int R[10];
L[n1+1]=9999;
R[n2+1]=9999;
for(int i=1;i<=n1;i++)
{
L[i]=a[p+i-1];
}
for(int i=1;i<=n1;i++)
{
R[i]=a[q+i];
}
int i=1;
int j=1;
for(int k=p;k<=r;k++)
{
if(L[i]<R[j])
{
a[k]=L[i];
i++;
}
else
{
a[k]=R[j];
j++;
}
}
}
void merge(int p,int r)
{
if(p<r)
{
int q=(p+r)/2;
merge(p,q);
merge(q+1,r);
operation(p,q,r);
}
}
void disp()
{
cout<<"Sorted Element:-";
for(int i=1;i<=n;i++)
{
cout<<a[i]<<endl;
}
}
};
int main()
{
sorting x;
x.disp();
}

INSERTION SORT..........

#include<iostream>
using namespace std;
class sorting
{
int a[10],i,n;
public:
sorting()
{
cout<<"Number of Element:-";
cin>>n;
cout<<"Unsorted Element:-";
for(i=1;i<=n;i++)
{
cin>>a[i];
}
}
void insertion()
{
for(int j=2;j<=n;j++)
{
i=j-1;
int key=a[j];
while(i>0&&a[i]>key)
{
a[i+1]=a[i];
i--;
}
a[i+1]=key;
}

}
void disp()
{
cout<<"Sorted Element:-";
for(i=1;i<=n;i++)
{
cout<<a[i]<<endl;
}
}
};
int main()
{
sorting x;
x.insertion();
x.disp();
}

Wednesday 6 April 2016

FIRST COME FIRST SERVE IN C

#include<stdio.h>
int main()
{
    int n,at[10],bt[10],ct[10],wt[10],tot[10],i,s=0;
    printf("No of Process:-");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("Arrival Time For p[%d]=",i+1);
        scanf("%d",&at[i]);
        printf("Burst Time For p[%d]=",i+1);
        scanf("%d",&bt[i]);
    }
    for(i=0;i<n;i++)
    {
        ct[i]=s+bt[i];
        s=ct[i];
    }
    for(i=0;i<n;i++)
    {
        tot[i]=ct[i]-at[i];
        wt[i]=tot[i]-bt[i];
    }
    for(i=0;i<n;i++)
    {
        printf("%d\t%d\t%d\t%d\n",at[i],bt[i],wt[i],tot[i]);
    }
}

Friday 1 April 2016

MERGE SORT C++ IMPLEMENTATION (COREMAN)

#include<iostream.h>
#include<conio.h>

class sort
{
    int a[10],n,i,j;
     public:
    void val();
    void mergesort(int,int);
    void merge(int,int,int);
    void print();
};
void sort::val()
{
    cout<<"Enter element Size : ";
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cout<<"elem "<<i<<" : " ;
        cin>>a[i];
    }
    i=1,j=n;
    mergesort(i,j);
}
void sort::mergesort(int p,int r)
{
    if(p<r)
    {
        int q=(p+r)/2;
        mergesort(p,q);
        mergesort(q+1,r);
        merge(p,q,r);
    }
}
void sort::merge(int p,int q,int r)
{
    int n1,n2;
    int l[10],ri[10];
    n1=q-p+1;
    n2=r-q;
    for(i=1;i<=n1;i++)
        l[i]=a[p+i-1];
    for(j=1;j<=n2;j++)
        ri[j]=a[q+j];

    l[i]=3000;
    ri[j]=4000;
    i=j=1;
    for(int k=p;k<=r;k++)
    {
        if(l[i]<=ri[j])
            a[k]=l[i++];
        else
            a[k]=ri[j++];
    }
}
void sort::print()
{
    cout<<"\n\tMerge Sort\n";
    for(i=1;i<=n;i++)
        cout<<"\t"<<a[i];
}
void main()
{
    clrscr();
    sort obj;
    obj.val();
    obj.print();
    getch();
}