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();
}

No comments:

Post a Comment