9Google AdSense

Merge sort

#include<stdio.h>
#include<conio.h>
int mergesort(int a[],int p,int r);
int merge(int a[],int p,int q,int r);

int main()
{
    int a[200],n,l,i,j,p,r;
    clrscr();
    printf("N : ");
    scanf("%d", &n);
    printf("\nEnter the number  : ");
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]); // Enter the numbers.
    p=1;
    r=n;
    mergesort(a,p,r);
    printf("\nThe Sorted number : ");
    for(i=1;i<=n;i++)
        printf("%d ",a[i]);
    getch();

  return 0;

}
int mergesort(int a[],int p,int r)
{
    int q;
    if(p<r)
    {
        q=(p+r)/2;
        mergesort(a,p,q);
        mergesort(a,q+1,r);
        merge(a,p,q,r);
    }
    return 0;
}
int merge(int a[],int p,int q,int r)
{
    int n1,n2,i,j,left[20],right[20],k;
    n1=q-p+1;
    n2=r-q;
    for(i=1;i<=n1;i++)
        left[i]=a[p+i-1];
    for(j=1;j<=n2;j++)
        right[j]=a[q+j];
    left[n1+1]=9999;
    right[n2+1]=9999;
    i=1;
    j=1;
    for(k=p;k<=r;k++)
    {
        if(left[i]<=right[j])
        {
            a[k]=left[i];
            i=i+1;
        }
        else
        {
            a[k]=right[j];
            j++;
        }
    }
    return 0;
}




No comments: