MERGE SORT
#include<stdio.h>
#include<conio.h>
void merge(int[],int,int,int);
void part(int[],int,int);
main()
{
int i,arr[100],n;
printf("enter
total no of element:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("enter
arr[%d]:",i);
scanf("%d",&arr[i]);
}
part(arr,0,n-1);
printf("sorted
using maerge sort:");
for(i=0;i<n;i++)
{
printf("%d",arr[i]);
}
getch();
}
void part(int arr[],int min,int max)
{
int mid;
if
(min<max)
{
mid=(min+max)/2;
part(arr,min,mid);
part(arr,mid+1,max);
merge(arr,min,mid,max);
}
}
void merge(int arr[],int min,int mid,int max)
{
int tmp[30];
int
i,j,k,m,n;
i=min;
j=min;
m=mid+1;
while((j<=mid)&&(m<=max))
{
if(arr[j]<=arr[m])
{
tmp[i]=arr[j];
j++;
}
else
{
tmp[i]=arr[m];
m++;
}
i++;
}
if(j>mid)
{
for(k=m;k<=max;k++)
{
tmp[i]=arr[k];
i++;
}
}
else
{
for(k=j;k<=mid;k++)
{
tmp[i]=arr[k];
i++;
}
}
for(k=min;k<=max;k++)
{
arr[k]=tmp[k];
}
}
OUTPUT
No comments:
Post a Comment