You are on page 1of 3

#include<stdio.

h>
void mergesort(int a[], int lb, int ub)
{
int mid;
if(lb<ub)
{
mid = (lb+ub)/2;

mergesort(a, lb, mid);


mergesort(a, mid+1, ub);
merge(a, lb, mid, ub);

}
}

void merge(int a[], int lb, int mid, int ub)


{
int temp[50];
int x = lb;
int y = mid+1;
int z = lb;

while(x<=mid && y<=ub)


{
if(a[x] <= a[y])
{
temp[z] = a[x];
x++;
z++;
}

else
{
temp[z] = a[y];
y++;
z++;
}
}
while(x <= mid)
{
temp[z] = a[x];
x++;
z++;
}
while(y <= ub)
{
temp[z] = a[y];
y++;
z++;
}

for(z=lb; z<=ub; z++)


{
a[z] = temp[z];
}
}
int main()
{
int a[50],n;
printf("enter array size");
scanf("%d",&n);

printf("enter array elements");


for(int i =0; i<n; i++)
{
scanf("%d",&a[i]);
}

mergesort(a, 0, n-1);
printf("the sorted array is \n");
for(int j = 0; j<n; j++)
{
printf("%d ", a[j]);
}
}
************************************************************************
#include<stdio.h>
#define n 6
int a[6]={9,8,7,6,5,10};
int temp[6];
void mergesort(int lb, int ub)
{
int mid;
if(lb<ub)
{
mid = (lb+ub)/2;

mergesort(lb, mid);
mergesort(mid+1, ub);
merge(lb, mid, ub);
}
else
return;
}

void merge(int lb, int mid, int ub)


{
int x = lb;
int y = mid+1;
int z = lb;

while(x<=mid && y<=ub)


{
if(a[x] <= a[y])
{
temp[z] = a[x];
x++;
z++;
}

else
{
temp[z] = a[y];
y++;
z++;
}
}
while(x <= mid)
{
temp[z] = a[x];
x++;
z++;
}
while(y <= ub)
{
temp[z] = a[y];
y++;
z++;
}

for(z=lb; z<=ub; z++)


{
a[z] = temp[z];
}
}
int main()
{
/*printf("enter array size");
scanf("%d",&n);

printf("enter array elements");


for(int i =0; i<n; i++)
{
scanf("%d",&a[i]);
}*/

mergesort(0, n-1);
printf("the sorted array is \n");
for(int j = 0; j<n; j++)
{
printf("%d ", a[j]);
}
}

You might also like