#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;
}
#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:
Post a Comment