#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();
}
#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();
}
No comments:
Post a Comment