You are on page 1of 2

# include<stdio.

h>
# include<stdlib.h>

void merge_sort(int *, int , int , int );


void merge_pass(int *, int , int );

void merge_sort(int list[], int top, int n, int bottom)


{
int temp[1000];
int f = top;
int s = n +1 ;
int t = top ;
int upper;
while(( f <= n)&&(s <=bottom))
{
if(list[f] <= list[s])
{
temp[t] = list[f] ;
f ++;
}

else
{
temp[t] = list[s] ;
s ++;
}

t ++;
}

if(f <=n)
{
for(f = f ; f<=n; f++)
{
temp[t] = list[f];
t++;
}
}

else
{
for(s = s ; s<= bottom ; s++)
{
temp[t]=list[s];
t++;
}

}
for(upper = top; upper <= bottom ; upper++)
{
list[upper]=temp[upper];
}

void merge_pass( int append[], int m, int n )


{
if( m!= n)
{
int mid = (m+n)/2;
merge_pass( append, m, mid );
merge_pass( append, mid+1, n );
merge_sort( append, m, mid, n );
}
}

void main()
{
int list[100];
int i, n;
printf("Input the number of element: ");
scanf("%d", &n);
for( i = 0 ; i<n ; i++)
{
printf("\n Entered list as follows %d:",i+1);
scanf("%d",&list[i]);
}
i=0;
merge_pass(list, i, n-1);
printf("\n Merge sorted list is as follows:\n");
for( i = 0 ; i<n ; i++)
printf(" %d", list[i]);
}

You might also like