Advertisement
Guest User

Nahid2194

a guest
Oct 25th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int arr[20];
  4. int main()
  5. {
  6.     int i,n;
  7.     printf("Enter array Size: ");
  8.     scanf("%d",&n);
  9.     printf("Enter array value: ");
  10.  
  11.     for(i=0; i<n; i++)
  12.     {
  13.         scanf("%d",&arr[i]);
  14.     }
  15.  
  16.  
  17.     mergesort(arr,0,n-1);
  18.  
  19.     printf("Sorted array: ");
  20.  
  21.     for(i=0; i<n; i++)
  22.     {
  23.         printf("%d ",arr[i]);
  24.     }
  25.     return 0;
  26. }
  27. int mergesort(int arr[],int low,int high)
  28. {
  29.     int mid;
  30.     if(low<high)
  31.     {
  32.         mid=(low+high)/2;
  33.  
  34.         mergesort(arr,low,mid);
  35.         mergesort(arr,mid+1,high);
  36.         merge(arr,low,mid,high);
  37.     }
  38.  
  39.     return 0;
  40. }
  41.  
  42.  
  43.  
  44.  
  45. int merge( int arr[],int p,int q,int r)
  46. {
  47.     int arr1[10],arr2[10];
  48.     int i,j,k,n1,n2;
  49.     n1=q-p+1;
  50.  
  51.     n2=r-q;
  52.  
  53.     for( i=0; i< n1; i++)
  54.     {
  55.         arr1[i]=arr[p+i];
  56.     }
  57.     for( j=0; j<n2; j++)
  58.     {
  59.         arr2[j]=arr[q+j+1];
  60.     }
  61.     arr1[i]=9999;
  62.     arr2[j]=9999;
  63.     i=0;
  64.     j=0;
  65.  
  66.     for(k=p; k<=r; k++)
  67.     {
  68.         if(arr1[i]<=arr2[j])
  69.         {
  70.             arr[k]=arr1[i];
  71.             i++;
  72.  
  73.         }
  74.         else
  75.         {
  76.             arr[k]=arr2[j];
  77.             j++;
  78.         }
  79.  
  80.     }
  81.  
  82.  
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement