Click here to hide categories Click here to show left categories

User: Home          welcome : Guest          Log In / Register here     




Program to perform MERGE SORT in C++

Download Attachment
/*******************************************/
/*******PROGRAM TO PERFORM MERGE SORT*****/
/***************************************** **/


#include < stdio.h>
#include < conio.h>
#define SIZE 5
void merge_sort(int [],int,int);
void merge_sort_subarray(int [],int,int,int,int);

void main()
{
    int a[SIZE],i;
    clrscr();

    printf("\nEnter the elements of array a:\n");
    for(i=0;i    {
        scanf("%d",&a[i]);
    }
    merge_sort(a,0,SIZE-1);
    printf("\nAfter merging the elements are:\n");
    for(i=0;i    {
        printf("%4d",a[i]);
    }
    getch();
}

void merge_sort(int a[],int beg,int end)
{
    int mid;
    if(beg    {
        mid=(beg+end)/2;
        merge_sort(a,beg,mid);
        merge_sort(a,mid+1,end);
        merge_sort_subarray(a,beg,mid,mid+1,end);
    }
}

void merge_sort_subarray(int a[],int lb,int le,int rb,int re)
{
    int c[SIZE],i,na,nb,nc;
    na=lb;
    nb=rb;
    nc=lb;
    while((na<=le)&&(nb<=re))
    {
        if(a[na]        {
            c[nc]=a[na];
            na++;
        }
        else
        {
            c[nc]=a[nb];
            nb++;
        }
        nc++;
    }
    if(na>le)
    {
        while(nb<=re)
        {
            c[nc]=a[nb];
            nb++;
            nc++;
        }
    }
    else
    {
        while(na<=le)
        {
            c[nc]=a[na];
            na++;
            nc++;
        }
    }
    for(i=lb;i<=re;i++)
    {
        a[i]=c[i];
    }
}

For more algorithms Please visit http://www.Xpode.com

Share this article   |    Print    |    Article read by 3037 times
Author:
Rohit kakria
I am software developer
Related Articles: No related article
Related Interview Questions: No related interview question