#include<stdio.h>
int a[100];
int t[100];
void merge(int low,int high);
void sort(int l,int h);
int main()
{
int i,n;
printf("enter size");
scanf("%d",&n);
printf("enter elements\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
merge(0,n-1);
printf("sorted array is ");
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
void merge(int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
merge(low,mid);
merge(mid+1,high);
sort(low,high);
}
return;
}
void sort(int l,int h)
{
int mid=(l+h)/2;
int l1=l,l2=mid+1,i=l;
for(;l1<=mid&&l2<=h;i++)
{
if(a[l1]<a[l2])
{
t[i]=a[l1];
l1++;
}
else
{
t[i]=a[l2];
l2++;
}
}
while(l1<=mid)
{
t[i]=a[l1];
l1++;
i++;
}
while(l2<=h)
{
t[i]=a[l2];
l2++;
i++;
}
for(i=l;i<=h;i++)
{
a[i]=t[i];
}
return;
}
OUT PUT:
int a[100];
int t[100];
void merge(int low,int high);
void sort(int l,int h);
int main()
{
int i,n;
printf("enter size");
scanf("%d",&n);
printf("enter elements\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
merge(0,n-1);
printf("sorted array is ");
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
return 0;
}
void merge(int low,int high)
{
int mid;
if(low<high)
{
mid=(low+high)/2;
merge(low,mid);
merge(mid+1,high);
sort(low,high);
}
return;
}
void sort(int l,int h)
{
int l1=l,l2=mid+1,i=l;
for(;l1<=mid&&l2<=h;i++)
{
if(a[l1]<a[l2])
{
t[i]=a[l1];
l1++;
}
else
{
t[i]=a[l2];
l2++;
}
}
while(l1<=mid)
{
t[i]=a[l1];
l1++;
i++;
}
while(l2<=h)
{
t[i]=a[l2];
l2++;
i++;
}
for(i=l;i<=h;i++)
{
a[i]=t[i];
}
return;
}
OUT PUT:
No comments:
Post a Comment