#include<stdio.h>
#include<conio.h>
void merge_sort(int a[' '], int low, int high);
void merge(int a[' '], int low, int mid, int high);
void main()
{
int a[20],n,i;
clrscr();
printf("Enter
the number of elements: ");
scanf("%d",&n);
printf("\n
Enter the numbers :");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
merge_sort(a,0,n-1);
printf("\n The
sorted elements are \n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
getch();}
void merge_sort(int
a[' '], int low, int high)
{ int mid;
if(low < high)
{
mid=(low+high)/2;
merge_sort(a,
low, mid);
merge_sort(a,
mid+1, high);
merge(a,low,mid,high);
} }
void merge(int a['
'], int low, int mid, int high)
{
int c[20],i,j,k;
i=low;
j=mid+1;
k=low;
while((i<=mid)&&(j<=high))
{
if(a[i]<a[j])
{
c[k]=a[i];
k=k+1;
i=i+1;
}
else
{
c[k]=a[j];
k=k+1;
j=j+1; } }
while(i<=mid)
{
c[k]=a[i];
k=k+1;
i=i+1; }
while(j<=high)
{
c[k]=a[j];
k=k+1;
j=j+1; }
for(i=0;i<=k-1;i++)
{ a[i]=c[i];
}
}
No comments:
Post a Comment