| CODE:-
|
| #include<stdio.h>
|
| #include<stdlib.h>
|
| int a[40],b[40];
|
|
|
| void merge_s(int lw,int h)
|
| {
|
| int mid;
|
| if(lw<h)
|
| {
|
| mid=((lw+h)/2);
|
| merge_s(lw,mid);
|
| merge_s(mid+1,h);
|
| merge(lw,mid,h);
|
| }
|
|
|
| }
|
| void merge(int lw,int mid,int high)
|
| {
|
| int h,i,j,k;
|
| h=lw;
|
| i=lw;
|
| j=mid+1;
|
|
|
| do{
|
| if(a[h]<=a[j])
|
| {
|
| b[i]=a[h];
|
| h=h+1;
|
| }
|
| else
|
| {
|
| b[i]=a[j];
|
| j=j+1;
|
| }
|
| i=i+1;
|
| }while((h<=mid)&&(j<=high));
|
|
|
| if(h>mid)
|
| {
|
| for(k=j;k<=high;k++)
|
| {
|
| b[i]=a[k];
|
| i=i+1;
|
| }
|
| }
|
| else
|
| {
|
| for(k=h;k<=mid;k++)
|
| {
|
| b[i]=a[k];
|
| i=i+1;
|
| }
|
| }
|
| for(k=lw;k<=high;k++)
|
| {
|
| a[k]=b[k];
|
| }
|
| }
|
| void dis(int b[40],int n)
|
| {
|
| int i;
|
| printf("\nAfter merge the arrays the sorted elements are:");
|
| for(i=1;i<=n;i++)
|
| {
|
| printf("%5d",a[i]);
|
| }
|
| }
|
|
|
| int main()
|
| {
|
| int n,i,k;
|
| printf("Enter the number of elements:");
|
| scanf("%d",&n);
|
| printf("\nEnter the elements:");
|
| for(i=1;i<=n;i++)
|
| {
|
| scanf("%d",&a[i]);
|
| }
|
| printf("\nThe elements are:");
|
| for(i=1;i<=n;i++)
|
| {
|
| printf("%5d",a[i]);
|
| }
|
|
|
| merge_s(1,n);
|
| dis(b,n);
|
| return 0;
|
| }
|